2017-04-05 1 views
0

고객이 내 제품에서 생성 된 특정 '보고서'가 어떻게 표시되는지를 지정하는 Word 및 Powerpoint 문서를 내게주었습니다.. 닷넷의 간단한 템플릿 기반 PDF 보고서

즉, 해당 문서를 수정해야하며 (예 : 자리 표시자를 바꾼다) PDF로 내보내기해야합니다.

어떻게 C#에서이 문제를 해결할 수 있습니까?

TL : DR : 사무실 문서를 편집해도 문제가 없지만 Interop을 사용하여 해당 문서를 PDF로 내보내는 것은 웹 서버 응용 프로그램으로 실행할 때 문제가됩니다. 그게 여기서 모든 문제입니다.

답변

0

Interop이 서버 환경에서 문서 조작에 적합하지 않음에 동의합니다. MS 워드 템플릿 문서에 데이터 자리 표시자를 준비하여이 문제에 접근합니다. 그런 다음 C#을 사용하여 보고서의 데이터를로드하고 데이터를 템플릿과 병합하여 최종 문서 (docx, pdf, xps 또는 다양한 이미지 형식)를 얻습니다. 아주 쉬운 제 3 자 툴킷이 있습니다. 다음은 PDF 문서를 얻을 수있는 템플릿을 사용하여 XML 데이터를 병합에 필요한 하나의 toolkit에 의해 사용되는 코드입니다 :

XElement customers = XElement.Load("Customers.xml"); 
DocumentGenerator dg = new DocumentGenerator(customers); 
DocumentGenerationResult result = dg.GenerateDocument("MyTemplate.docx", "MyReport.pdf"); 

당신도하지만, OpenXML을 기반으로 무료 도서관 및 SDK를 사용 물론 당신은 가파른 학습을 기대할 수 있습니다 커브, 많은 디버깅 및 많은 시간 투자.

0

완전히 다른 "보고서 접근 방식"은 자리 표시 자와 함께 해당 사무실 문서를 mht (즉, MHTML a web archive format)로 저장할 수 있습니다. 이것은 MS 오피스 또는 programatically에서 직접 수행 할 수 있습니다.

자리 표시자는 문자열 검색 및 바꾸기로 쉽게 교환 할 수 있습니다. mht 파일은 PDF 대신 보고서를 표시하는 데 직접 사용될 수 있습니다. mht 형식의 단점은 HTML 서식입니다. PDF를 사용하면 명확하고 정확한 위치를 알 수 있습니다.

Google은 이러한 종류의 보고서 작성을 사용하고 있습니다. 몇 가지 단점이 있지만 작동하지만 고객이 선호하는 MS Office 버전을 마우스 오른쪽 버튼으로 클릭하고 열기를 클릭하여 mht 템플릿을 직접 편집 할 수 있습니다.

0

FastReport.Net과 같은 보고서 생성기를 사용하여 문제를 해결할 수 있습니다. 또한 다른 데이터를 자리 표시 자에 할당하고 PDF로 내보낼 수 있습니다.