我有一个word文件。我可以使用 jodconverter 转换为 pdf。我已经使用了从 doc 到 pdf 的 jodconverter,它给出了非常好的结果。但我不知道它支持从 HTML 到 pdf 的天气。
谢谢!
我有一个word文件。我可以使用 jodconverter 转换为 pdf。我已经使用了从 doc 到 pdf 的 jodconverter,它给出了非常好的结果。但我不知道它支持从 HTML 到 pdf 的天气。
谢谢!
根据我对 Jodconverter 的了解,我了解到它使用 LibreOffice 或 OpenOffice 将 doc 文件导出为 PDF。现在该软件无法完全支持 Microsoft Office。只有 Microsoft Office 可以完全支持它们的格式,因此使用上述软件之一来转换您的 docx 文件可能是可能的,但在某些情况下(或在所有情况下)会产生不愉快的结果。据我所知,您有两种选择:
您可以将所有 docx 文档转换为 LibreOffice,然后使用 LibreOffice 软件(或您的外部 java 库)将它们导出为 PDF 而不会出现兼容性问题
您可以使用 Microsoft Office Word 进行从 docx 到 pdf 的转换。为了实现这一点,您将需要一个脚本告诉 MS Word 进行转换并使用Runtime.getRuntime().exec(command);
. 至少这是我所知道的方式,并且正在这样做。
这是我多年前发现的脚本,在某些情况下仍在使用。剧本不是我的,所以我不能接受任何学分。您需要做的就是创建一个扩展名为 .vbs 的新文件并添加以下代码。
Option Explicit
Doc2PDF Wscript.Arguments.Item(0)
Sub Doc2PDF( myFile )
Dim objDoc, objFile, objFSO, objWord, strFile, strPDF
Const wdFormatDocument = 0
Const wdFormatDocument97 = 0
Const wdFormatDocumentDefault = 16
Const wdFormatDOSText = 4
Const wdFormatDOSTextLineBreaks = 5
Const wdFormatEncodedText = 7
Const wdFormatFilteredHTML = 10
Const wdFormatFlatXML = 19
Const wdFormatFlatXMLMacroEnabled = 20
Const wdFormatFlatXMLTemplate = 21
Const wdFormatFlatXMLTemplateMacroEnabled = 22
Const wdFormatHTML = 8
Const wdFormatPDF = 17
Const wdFormatRTF = 6
Const wdFormatTemplate = 1
Const wdFormatTemplate97 = 1
Const wdFormatText = 2
Const wdFormatTextLineBreaks = 3
Const wdFormatUnicodeText = 7
Const wdFormatWebArchive = 9
Const wdFormatXML = 11
Const wdFormatXMLDocument = 12
Const wdFormatXMLDocumentMacroEnabled = 13
Const wdFormatXMLTemplate = 14
Const wdFormatXMLTemplateMacroEnabled = 15
Const wdFormatXPS = 18
Const wdFormatOfficeDocumentTemplate = 23
Const wdFormatMediaWiki = 24
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
Set objWord = CreateObject( "Word.Application" )
With objWord
.Visible = false
If objFSO.FileExists( myFile ) Then
Set objFile = objFSO.GetFile( myFile )
strFile = objFile.Path
Else
WScript.Echo "FILE OPEN ERROR: The file does not exist" & vbCrLf
.Quit
Exit Sub
End If
strPDF = objFSO.BuildPath( objFile.ParentFolder, _
objFSO.GetBaseName( objFile ) & ".pdf" )
.Documents.Open strFile
Set objDoc = .ActiveDocument
objDoc.SaveAs strPDF, wdFormatPDF
objDoc.Close
.Quit
End With
End Sub
这是一个小示例,您可以使用该方法将 docx 文件导出为 PDF:
private void convertFile(String text) {
File f = new File(text);
if (f.exists() && f.getName().endsWith(".docx")) {
// The full path of your script, in my case is the Desktop.
String converterLocation = System.getProperty("user.home") + "\\Desktop\\wordToPdf.vbs";
// wscript <converterLocation> <"fullFilePath">
String command = "wscript " + converterLocation + " \"" + f.getAbsolutePath();
try {
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我知道这个答案不是您所期望的,但我只想指出我知道的您的问题的解决方案。