我有一个word文件。我可以使用jodconverter转换成pdf。我使用了从doc到pdf的jodconverter,它给出了非常好的结果。但我不知道它支持从HTML到pdf的天气。
谢谢!
答案 0 :(得分:0)
从我所看到的关于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);
从Java调用该脚本。至少这是我所知道的,并且这样做。
这是我多年前发现的脚本,在某些情况下仍然使用。剧本不是我的,所以我不能拿任何学分。您所需要做的就是创建一个扩展名为.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();
}
}
}
我知道这个答案不是你所期望的,但我只想指出我所知道的问题的解决方案。