【问题标题】:How to maintain font properties of word documents when converted to PDFword文档转换为PDF时如何保持字体属性
【发布时间】:2015-07-24 03:51:27
【问题描述】:

我在将 Word 文档转换为 PDF 时遇到问题。在我的word文档中,字体是这样的(Times New Roman):

但是转换成PDF后,变成了:

我使用了以下代码:

        Word._Application oWord = new Word.Application();

        // Make this instance of word invisible (Can still see it in the taskmgr).
        oWord.Visible = false;

        // Interop requires objects.
        object oMissing = System.Reflection.Missing.Value;
        object isVisible = true;
        object readOnly = false;
        object oInput = Application.StartupPath+"\file.docx";
        object oOutput = Application.StartupPath+"\file.docx".Replace(".docx", ".pdf");
        object oFormat = Word.WdSaveFormat.wdFormatPDF;

        // Load a document into our instance of word.exe
        Word._Document oDoc = oWord.Documents.Open(ref oInput, ref oMissing, ref readOnly, 
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
            ref oMissing, ref oMissing, ref isVisible, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

        // Make this document the active document.
        oDoc.Activate();

        // Save this document in Word 2003 format.
        oDoc.SaveAs(ref oOutput, ref oFormat, 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);

        // Always close Word.exe.
        oWord.Quit(ref oMissing, ref oMissing, ref oMissing);

我将如何将 word 文档转换为 PDF 以保持其字体属性?

【问题讨论】:

    标签: c# .net pdf ms-word office-interop


    【解决方案1】:

    我最近遇到了类似的问题。我的字体不会更改,但使用 Word.Interop SaveAs 方法时其他 Word 格式元素会丢失/更改。这是我为我解决问题的方法。我下面的示例使用 Application 和 Document,而不是您的 _Application 和 _Document。我不熟悉这些差异,但认为它应该适用于任何一种方法。

    bool _OpenAfterExport = false;
    bool _KeepIRM = true;
    int _From = 1;
    int _To = 1; //I thought this was odd, setting From and To to 1, but it exported all pages of the document
    bool _IncludeDocProps = true;
    
    Word.Document oDoc = oWord.Documents.Open(inputFile);
    oDoc.ExportAsFixedFormat(outputFile,
                             Word.WdExportFormat.wdExportFormatPDF,
                             OpenAfterExport,
                             Word.WdExportOptimizeFor.wdExportOptimizeForPrint,
                             Word.WdExportRange.wdExportAllDocument,
                             _From,
                             _To,
                             Word.WdExportItem.wdExportDocumentContent,
                             _IncludeDocProps,
                             _KeepIRM,
                             Word.WdExportCreateBookmarks.wdExportCreateHeadingBookmarks)
    oDoc.Close();
    oWord.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(oDoc);
    

    希望这能解决您的问题。

    【讨论】:

    • 我重新安装了所有的 pdf 阅读器,并用你的代码替换了我的代码。现在,它已完美修复。 ^_^ 非常感谢。 . .
    • 没问题。我发现使用 Word 和 PDF 有时会有些棘手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2011-11-10
    相关资源
    最近更新 更多