서버에서 정보를 최종 출력으로 생성되는 PDF인 "양식"으로 가장 잘 병합하는 방법

StackOverflow https://stackoverflow.com/questions/54808

문제

배경:

지원되지 않는 Acrobat Reader OCX 통합을 사용하여 사용자가 검토할 수 있도록 PDF를 생성하는 "상속"한 VB6 응용 프로그램이 있습니다.프로그램은 데이터가 포함된 FDF 파일을 생성한 다음 FDF가 PDF와 병합될 때 병합된 결과를 렌더링합니다.Acrobat Reader 4에서만 올바르게 작동합니다. :-(.최신 버전의 Acrobat Reader를 설치하면 이 응용 프로그램이 중단되어 사용자가 매우 불만스러워집니다.

PDF 출력 생성 서버에 병합할 데이터를 보낼 수 있도록 이 앱을 다시 설계하고 싶습니다.이 서버는 전달된 데이터를 양식에 병합하고 이에 대한 PDF 이미지를 생성하고 저장하므로 최종 결과를 보려는 사용자는 PDF를 간단히 얻을 수 있습니다(한 번만 생성됨).기본 데이터가 변경되면 다음에 PDF를 요청할 때 PDF가 삭제되고 다시 생성됩니다.그런 다음 클라이언트 프로그램은 PDF 파일을 표시하는 데만 사용되므로(의도한 대로) 원하는 모든 버전의 Acrobat Reader를 가질 수 있습니다.서버는 아마도 웹 서비스로 Visual Studio 2005와 함께 .NET(C#)으로 작성될 것입니다.

질문:

다른 사람들은 내가 이 문제를 해결하도록 어떻게 추천할까요?이 작업을 수행하려면 서버에서 Adobe의 Acrobat 9를 사용해야 합니까? 데이터를 FDF 또는 Adobe의 XML 형식으로 저장하고 Acrobat에서 병합을 수행하도록 해야 합니까?"데이터를 양식에 병합하고 PDF로 출력"하는 분야에 큰 경쟁자가 있습니까?다른 사람들은 이것을 어떻게 합니까?물론 API 기반이어야 하며 서버에 GUI가 없어야 합니다.

일부 출력은 FDF/PDF를 통해 생성되는 반면, 응용 프로그램의 다른 부분은 실제로 선, 그래픽 및 텍스트를 프린터(또는 미리보기용 양식)에 한 번에 한 페이지씩 보내 적절한 x/y 좌표, 글꼴, 크기 등각각에 대해 페이지 끝이 언제인지 등을 알 수 있습니다.이 코드는 현재 사용자가 검토할 수 있도록 표시하는 프로그램에 있으며 최종 양식을 프린터로 인쇄하는 프로그램에도 있습니다.리뷰어와 프린터 간의 일관성을 위해 좋은 PDF 생성 API 도구를 사용하거나 코드를 그대로 사용하고 PDF 프린터로 PDF를 생성하여 이 출력 생성 논리를 서버로 옮기고 싶습니다.클라이언트가 표시할 수 있도록 이 PDF를 저장합니다.

"양식 소프트웨어" 또는 "양식 작성 소프트웨어" 또는 유사한 검색을 검색하면 대부분 사용자가 양식을 작성하는 UI와 관련된 관련 없는 자료가 너무 많이 검색됩니다. 검색 범위를 적절하게 좁히는 방법을 모르겠습니다.다른 프로그래머도 비슷한 결과를 생성해야 하고 몇 가지 훌륭한 도구를 시험해 보아야 하기 때문에 이 사이트는 그러한 질문을 하기 위한 완벽한 장소인 것 같습니다.

편집하다:

PDF 태그와 PDF 생성을 추가했습니다.또한 현재 고객이 PDF 출력을 요구하지만 대체 제안에 감사드립니다.

도움이 되었습니까?

해결책

VB6 솔루션에 도움을 줄 수 없으며 서버의 .net 또는 Java 솔루션에 도움을 줄 수 있습니다.
다음에서 iText 또는 iTextSharp를 받으세요. http://www.lowagie.com/iText/.
PDF 및 FDF FDFReader/FDFWriter 클래스를 병합하여 FDF 파일을 생성하고 PDF 파일에서 필드 이름을 가져오는 등의 작업을 수행할 수 있는 PdfStamper 클래스가 있습니다.

다른 팁

내 충고를 들어.XPS용 PDF를 버리세요.저는 서버 기반의 두 가지 앱을 개발 중입니다.하나는 이미지 기반 문서를 브라우저에 PDF로 표시합니다.두 번째는 고정페이지 템플릿을 사용하여 데이터 소스에 바인딩된 XPS 문서를 구성합니다.

두 프로젝트를 모두 진행한 후 제가 내린 결론은 PDF가 형편없다는 것입니다.XPS 문서는 덜 그렇습니다.괜찮은 PDF 라이브러리를 구입하려면 현금을 지불해야 하지만 XPS에는 프레임워크가 함께 제공됩니다.PDF 문서 생성은 메모리를 많이 차지하고 움푹 들어간 곳이 많으며 서버 친화적이지 않습니다.XPS 문서는 설치 공간이 훨씬 작고 발에 총을 맞을 가능성도 적습니다.

저는 Microsoft Word를 사용하여 큰 성공을 거두었습니다.양식은 Word로 디자인되었으며 XML 데이터로 합성되었습니다.문서는 PDF 변환기(이 경우 Neevia이지만 더 나은 변환기)를 통해 실행되어 PDF를 생성합니다.

이 모든 작업은 C#에서 수행됩니다.

같은 보트.우리는 현재 다음과 같은 방식으로 PDF를 만들고 있습니다.vb6 앱은 레코드를 SQL(파일 이름, 생성 날짜, 사용자 및 최종 대상 포함)에 삭제하고 xls(또는 문서)는 서버 디렉터리(공유)로 이동되며 서버에는 파일 감시자 모니터링 기능이 있는 vb.net 서비스가 있습니다. 그 디렉토리.파일이 표시되고, 서비스는 Excel(워드)을 시작하여 Adobe를 통해 파일을 PDF로 만들고, PDF가 만들어지면 SQL을 통해 PDF로 무엇을 해야 할지 파악하고, 완료 시간을 기록합니다.

이것은 저렴한 솔루션이었습니다. 코드를 작성하는 데 하루 정도 걸렸고 양쪽 끝을 디버그하고 빌드를 롤아웃하는 데 또 하루가 걸렸습니다.

이것은 그렇게 하는 방법이 아닙니다. PDF를 만들려고 할 때 Adobe가 무작위로 충돌합니다.전혀 문제 없이 2주 동안 실행되고 그 다음에는 (오늘처럼) 5분마다 충돌이 발생합니다.아니면 매시간마다.또는 11:07, 2:43, 3:05, 6:11.

우리는 다음 개정판에서 PDFTron을 사용하여 Excel과 Word의 내용을 변환하고 데이터를 PDF로 직접 드롭할 예정입니다.예, PDFTron은 비용이 많이 들지만(우리는 프로세서당 1킬로벅 라이센스를 구입했습니다) 작업을 훌륭하게 수행할 것입니다.XPS는 멋진 하지만 나도 당신처럼 PDF를 제공해야 해요.그것은 사물의 방식입니다.

pdfTron(google it)을 확인하고 원하는 대로 작동하는지 확인하세요.그런 다음 필요한 라이센스와 비용을 지불하는 방법을 파악해야 합니다.누군가 더 나은 것을 생각해 내면 목록의 맨 위에 투표하기를 바랍니다 !!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top