문제

내 웹 프로젝트에서는 보고서 템플릿을 포함하는 데 Docx 파일 유형을 사용합니다. DOCX 파일 유형을 PDF로 변환해야합니다. 이를위한 .NET 관리 코드가 있습니까?

이 질문을 해결하는 몇 가지 방법을 알고 있습니다. 그러나 그것은 관리 된 코드가 아니며 다음 항목과 같이 무료입니다.

  • Word 12.0 객체 라이브러리 Word 2007 문서를 PDF 문서 또는 XPS 문서로 프로그래밍 방식으로 저장하려면. 그러나 서버에 Office 2007을 설치해야합니다.

  • 무료 PDF 프린터를 사용하여 인쇄하십시오 pdfcreator. 그러나 Office 2007과 같은 서버에서 Open Docx를위한 프로그램이 필요합니다. 매우 나쁜 생각입니다.

  • 무료 변환기 프로그램으로 변환. 그러나 결과는 완벽하지 않습니다.

  • Framework와 같은 프레임 워크를 사용하십시오 XF 렌더링 서버. 아주 좋은 생각이지만 무료는 아닙니다.

  • PDF API에서 모든 문서 컨텐츠를 작성하십시오 itextsharp. 그러나 나는 멋진 문서를 만들기 위해 열심히 노력해야합니다.

  • 또는 DOCX 및 PDF 파일 형식으로 내보낼 수있는 다른 파일 형식으로 템플릿 문서를 만듭니다. 또한 최종 사용자는이 파일을 쉽게 편집해야합니다. 알고 있다면 말 해주세요.

감사,

도움이 되었습니까?

해결책

DOCX를 PDF로 변환하기위한 코드가 없지만 DOCX에 대한 귀하의 요구 사항이 확실하지 않은 것으로 보입니다. 마지막 총알이 말한다 :

또는 DOCX 및 PDF 파일 형식으로 내보낼 수있는 다른 파일 형식으로 템플릿 문서를 만듭니다. 또한 최종 사용자는이 파일을 쉽게 편집해야합니다. 알고 있다면 말 해주세요.

나는 당신이 템플릿 문서를 만들고, 데이터로 채우고, pdf에 그것을 은밀하게 만들 수 있고, 템플릿을 유지할 수 있도록 이것을 읽었습니까?

해결책 : XSL-FO

XSL-FO는 HTML과 같은 W3C 표준이며 다수의 오픈 소스 및 상용 제품으로 PDF, WordML, XPS, PC, SVG, TIFF 등으로 변환 할 수 있습니다. 매월, PDF 및 오프라인으로 온라인 (대량 수표 인쇄와 같은 것).

당신을 시작하기 위해 여기에 있습니다 XML-FO 용 W3C 페이지. 왼쪽 아래에 소프트웨어 목록 (오픈 소스 및 기념품)을 포함하여 많은 좋은 정보가 있습니다. 나는 개인적으로 두 개의 상업용 제품을 사용했습니다 IBEX PDF 제작자 그리고 renderx에 의해 xep. 둘 다 우수한 제품이며, PDF에 도달하기위한 100% 관리 된 C# 구현이 있습니다. fo.net CodePlex에서. 나는 이것을 시도하지 않았지만 당신의 "무료"기준을 충족해야합니다.

XSL-FO에서 문서를 작성할 템플릿을 편집 할 수있는 여러 가지 방법이 있습니다. 일반적 으로이 템플릿은 XML 데이터에 적용되는 XSLT이지만 이는 요구 사항이 아닙니다. 나는 이것을 손으로 만들었지 만 약간의 학습 곡선입니다. XSL-FO의 문서로 시작하여 HTML과 마찬가지로 코드로 섹션을 작성할 수 있습니다. 좋은 소식은 거기 ~이다 다수 XSL-FO 편집자 저 밖에. 나쁜 소식은 내가 아는 사람이 없다는 것입니다. 그러나 그중 몇몇은 저렴하고 약간의 인터넷 검색으로 무료 기준을 충족하는 것을 찾을 수 있다는 것입니다. 그러나 한 가지 옵션은 스타일 시트를 사용하여 Word에서 변환 할 수 있다는 것입니다.광고 & 무료).

다른 팁

Office 2007을 설치하고 Word 12 Object 라이브러리를 사용하는 것은 확실히 내가 원하는 옵션입니다 (그리고 내 프로젝트 중 일부에서는 그렇게했습니다).

프로덕션 웹 서버에 Word를 설치하지 않으려면 보조 서버에 단어를 사용하지 않겠습니까? 이 두 번째 서버가 첫 번째 서버와 통신하도록 할 수 있습니다 (웹 서비스 또는 이와 비슷한 것을 사용). 내보내기가 필요한 다음 Word 문서를 요청하고, 변환을 수행 한 다음 PDF 데이터를 반환 할 수 있습니다.

이 변환을 수행하는 단어 자동화 단어의 C# 예제를 원한다면 알려주세요 (매우 사소한).

아드리안


Jason에 게시 된 내 코드는 다음과 같습니다. 이것은 Word 2007과 함께 작동합니다. 사무실 웹 사이트에서 PDF Expler를 다운로드하여 설치해야합니다.

using Microsoft.Office.Interop.Word;

...

object _read_only = false;
object _visible = true;
object _false = false;
object _true = true;
object _dynamic = 2;
object  _missing = System.Reflection.Missing.Value;

object _htmlFormat = 8;        
object _pdfFormat = 17;
object _xpsFormat = 18;

object fileName = "C:\\Test.docx";

ApplicationClass ac = new ApplicationClass();
//ac.Visible = true; // Uncomment to see Word as it opens and converts the document
//ac.Activate();

Document d = ac.Documents.Open(ref fileName, ref _missing, ref _true, ref _read_only, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _visible, ref _missing, ref _missing, ref _missing, ref _missing);

object newFileName = ((string)fileName).Substring(0, ((string)fileName).LastIndexOf(".")) + ".pdf";

d.SaveAs(ref newFileName, ref _pdfFormat, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing);

d.Close(ref _false, ref _missing, ref _missing);
ac.Quit(ref _false, ref _missing, ref _missing);

ac = null;

따라서 Soul_master, 당신이 말하는 것은 당신이 interop을 사용하고 싶지 않다는 것입니다. 완벽한 결과를 원하십니까?

나는 당신을 도울 수 없다, 나는 두려워. Interop은 매번 완벽한 결과를 제공하며 이미 소프트웨어를 가지고 있습니다. 당신이 그것을 사용하지 않으면, 당신은 비용이나 품질을 희생해야합니다.

Open Office에는 API가 있습니까? 적어도 무료 옵션일까요?

ActiveReports/Crystal Reports와 같은보고 도구를 사용하여 PDF를 만듭니다 (ITEXTSHARP를 사용하는 것보다 훨씬 쉽습니다)

DOCX에서 PDF 로의 문제를 해결 한 무료 구성 요소로 문제를 해결했습니다. 무료 spire.doc. 그것에 대해 더 많이 볼 수 있습니다 이 지역. 사용량이 매우 쉽습니다.

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