DOCX를 PDF로 변환하기위한 무료 .NET 관리 코드가 있습니까?
문제
내 웹 프로젝트에서는 보고서 템플릿을 포함하는 데 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. 그것에 대해 더 많이 볼 수 있습니다 이 지역. 사용량이 매우 쉽습니다.
OpenOffice.org를 사용해 볼 수 있습니다
http://abdulmunim.com/how-to-converververice-documents-to-pdf-using-open-soffice-in-csharp/