Ich habe eine Docx-Datei mit chinesischen Schriftzeichen und anderen asiatischen Sprachen. Ich bin in der Lage, die docx-Datei in eine PDF-Datei perfekt auf meinem Laptop mit den chinesischen Schriftzeichen korrekt in die PDF-Datei zu konvertieren, aber wenn derselbe Code als Runable jar auf dem Linux-Server ausgeführt wird, werden die chinesischen Zeichen durch # Symbol ersetzt. Kann mir bitte jemand mit diesem Problem helfen? Vielen Dank für die Hilfe im Voraus. Der Java-Code unterDocx zu Pdf mit ersetzten Zeichen
gegebenpublic static void main(String[] args) throws Exception {
try {
Docx4jProperties.getProperties().setProperty("docx4j.Log4j.Configurator.disabled", "true");
Log4jConfigurator.configure();
org.docx4j.convert.out.pdf.viaXSLFO.Conversion.log.setLevel(Level.OFF);
System.out.println("Getting input Docx File");
InputStream is = new FileInputStream(new File(
"C:/Users/nithins/Documents/plugin docx to pdf/other documents/Contains Complex Fonts Verified.docx"));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is);
wordMLPackage.setFontMapper(new IdentityPlusMapper());
System.out.println("Setting File Encoding");
System.setProperty("file.encoding", "Identity-H");
System.out.println("Generating PDF file");
org.docx4j.convert.out.pdf.PdfConversion c = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
wordMLPackage);
File outFile = new File(
"C:/Users/nithins/Documents/plugin docx to pdf/other documents/Contains Complex Fonts Verified.pdf");
OutputStream os = new FileOutputStream(outFile);
c.output(os, new PdfSettings());
os.close();
System.out.println("Output pdf file generated");
} catch (Exception e) {
e.printStackTrace();
}
}
public static String changeExtensionToPdf(String path) {
int markerIndex = path.lastIndexOf(".docx");
String pdfFile = path.substring(0, markerIndex) + ".pdf";
return pdfFile;
}
Sie verwenden eine Java-Lösung für die docx zu pdf Konvertierung. Das ist alles was du uns erzählst. Alles was wir sagen können ist, dass Sie in dieser Lösung etwas falsch machen. – mkl
Tut mir leid, ich habe gerade die Frage mit meinem Java-Code bearbeitet –
Ok, also verwenden Sie [tag: docx4j]. Ich habe dieses Tag hinzugefügt. Leider kenne ich dieses Produkt überhaupt nicht. Nur eine Anmerkung: 'System.setProperty (" file.encoding "," Identity-H ")" sollte überhaupt keinen Sinn ergeben, ** Identity-H ** ist eine PDF-interne Sache; Die Systemeigenschaft "file.encoding" bezieht sich im Allgemeinen auf Textdateien und daher nicht auf PDFs, bei denen es sich schließlich um Binärdateien und nicht um Textdateien handelt. Außerdem ist es komisch, dass Sie den Log-Level auf "Aus" setzen, obwohl Sie immer noch Probleme haben, denn es könnte Log-Ausgaben geben, die Ihnen helfen könnten. – mkl