Word(.doc) 파일을 PDF 형식으로 변환하는 것은 많은 응용 프로그램에서 일반적으로 필요합니다. 그러나 깨끗하고 비용 효율적인 프로그래밍 솔루션을 찾는 것은 어려울 수 있습니다. 오픈 소스 옵션에는 SDK가 부족한 경우가 많고 독점 솔루션의 가격은 비싼 경우가 많습니다.
이 문제를 해결하기 위해 다음과 같은 두 가지 프로그래밍 접근 방식이 있습니다.
이 솔루션은 for 루프를 사용하여 이전 코드의 문제를 해결합니다. 이 문제는 아래와 같이 foreach 루프 구현 코드를 사용하여 해결할 수 있습니다.
<code class="language-csharp">int j = 0; foreach (Microsoft.Office.Interop.Word.Page p in pane.Pages) { var bits = p.EnhMetaFileBits; var target = path1 + j.ToString() + "_image.doc"; try { using (var ms = new MemoryStream((byte[])(bits))) { var image = System.Drawing.Image.FromStream(ms); var pngTarget = Path.ChangeExtension(target, "png"); image.Save(pngTarget, System.Drawing.Imaging.ImageFormat.Png); } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } j++; }</code>
이 솔루션은 Microsoft Word Interop을 활용하여 변환을 수행합니다.
<code class="language-csharp">using Microsoft.Office.Interop.Word; using System; using System.IO; // ...其他using语句... // 创建新的Microsoft Word应用程序对象 Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); // C#没有可选参数,所以我们需要一个虚拟值 object oMissing = System.Reflection.Missing.Value; // 获取指定目录中Word文件的列表 DirectoryInfo dirInfo = new DirectoryInfo(@"\server\folder"); FileInfo[] wordFiles = dirInfo.GetFiles("*.doc"); word.Visible = false; word.ScreenUpdating = false; foreach (FileInfo wordFile in wordFiles) { // 转换为Object类型以用于word Open方法 Object filename = (Object)wordFile.FullName; // 使用虚拟值作为可选参数的占位符 Document doc = word.Documents.Open(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); doc.Activate(); object outputFileName = wordFile.FullName.Replace(".doc", ".pdf"); object fileFormat = WdSaveFormat.wdFormatPDF; // 将文档保存为PDF格式 doc.SaveAs(ref outputFileName, ref fileFormat, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); // 关闭Word文档,但保持Word应用程序打开。 // doc必须转换为_Document类型,以便找到正确的Close方法。 object saveChanges = WdSaveOptions.wdDoNotSaveChanges; ((_Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing); doc = null; } // word必须转换为_Application类型,以便找到正确的Quit方法。 ((_Application)word).Quit(ref oMissing, ref oMissing, ref oMissing); word = null;</code>
위 내용은 효율적이고 저렴하게 프로그래밍 방식으로 Word 파일을 PDF로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!