【问题标题】:Changing word doc into pdf file将word doc转换成pdf文件
【发布时间】:2014-03-23 19:10:36
【问题描述】:

有没有办法将 .doc 文件转换为 .pdf,保持与 doc 文件相同的格式,也可以包含图像?

我可以从 doc 生成 PDF 文件,但只显示文本。

【问题讨论】:

  • 发布您已有的代码会有所帮助。
  • 您希望通过将 Word 文档转换为 PDF 获得什么?
  • 通用兼容性可能!
  • 您的问题解决了吗?
  • 那么,你的问题解决了吗?接受一个答案;)

标签: java pdf doc


【解决方案1】:

您可以使用基于 Open-Office 的库。 它允许转换(和转换为)OpenOffice 支持的所有格式。

此外,如果 OpenOffice 正确读取了您的文档,则应该完全按照您所看到的那样进行转换。

我知道JOD Converter 示例

File inputFile = new File("document.doc");
File outputFile = new File("document.pdf");

// connect to an OpenOffice.org instance running on port 8100
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();

// convert
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);

// close the connection
connection.disconnect();

您也可以使用简单的命令行(安装了oo):

#!/bin/sh 
DIR=$(pwd) 
DOC=$DIR/$1 
echo "Doc to convert : $DOC"
/user/bin/oowriter-invisible "macro://Standard.Module1.ConvertWordToPDF($DOC)"

【讨论】:

    【解决方案2】:

    您可以使用Apache POI 读取doc 文件,然后使用Apache PDFBox 写入pdf 文件。

    【讨论】:

    • 转换不是问题,但保持 pdf 的格式与 doc 文件相同,并且还包括从 doc 文件到 pdf 的图像/徽标。
    【解决方案3】:

    您可以使用 Openoffice 宏 将文档导出为 pdf 格式,

    sub Docaspdf  
    
    rem ----------------------------------------------------------------------  
    rem define variables  
    dim document   as object  
    dim dispatcher as object  
    
    rem ----------------------------------------------------------------------  
    rem get access to the document  
    document   = ThisComponent.CurrentController.Frame  
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")  
    
    rem ----------------------------------------------------------------------  
    dim args1(2) as new com.sun.star.beans.PropertyValue  
    args1(0).Name = "URL"  
    args1(0).Value = "file:///C:/doc.pdf"  
    args1(1).Name = "FilterName"  
    args1(1).Value = "writer_pdf_Export"  
    args1(2).Name = "FilterData"  
    args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EmbedStandardFonts",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))  
    
    dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())  
    end sub
    

    【讨论】:

      【解决方案4】:
      import officetools.OfficeFile; 
      
      FileInputStream(new File("test.doc"));  
      FileOutputStream fos = new FileOutputStream(new File("test.pdf")); /
      
      OfficeFile f = new OfficeFile(fis,"localhost","8100", false);  
      

      转换成pdf

      f.convert(fos,"pdf");
      

      【讨论】:

      • 如果你提到了officetools的出处,你的回答会更有价值。
      【解决方案5】:

      您可以使用Aspose.Words for Javaconvert Doc files to PDF。此组件在转换为 PDF 时保留 word 文档的格式。它还将图像与文本一起转换。

      披露:我在 Aspose 担任开发布道师。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-20
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多