org.docx4j.model.fields.FieldUpdater Java Examples
The following examples show how to use
org.docx4j.model.fields.FieldUpdater.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: WordToHtmlRenditionProvider.java From spring-content with Apache License 2.0 | 5 votes |
@Override public InputStream convert(InputStream fromInputSource, String toMimeType) { try { WordprocessingMLPackage pkg = WordprocessingMLPackage.load(fromInputSource); // Refresh the values of DOCPROPERTY fields FieldUpdater updater = new FieldUpdater(pkg); updater.update(true); AbstractHtmlExporter exporter = new HtmlExporterNG2(); HTMLSettings htmlSettings = Docx4J.createHTMLSettings(); htmlSettings.setImageDirPath("/tmp/sample-docx.html_files"); htmlSettings.setImageTargetUri("/tmp/_files"); htmlSettings.setWmlPackage(pkg); Docx4jProperties.setProperty("docx4j.Convert.Out.HTML.OutputMethodXML", true); OutputStream os = new FileOutputStream("/tmp/temp.html"); Docx4J.toHTML(htmlSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); IOUtils.closeQuietly(os); if (pkg.getMainDocumentPart().getFontTablePart() != null) { pkg.getMainDocumentPart().getFontTablePart() .deleteEmbeddedFontTempFiles(); } // This would also do it, via finalize() methods htmlSettings = null; pkg = null; return new FileInputStream("/tmp/temp.html"); } catch (Exception e) { } return null; }
Example #2
Source File: WordprocessingMLPackageWriter.java From docx4j-template with Apache License 2.0 | 4 votes |
/** * 将 {@link org.docx4j.openpackaging.packages.WordprocessingMLPackage} 存为 pdf * @param wmlPackage {@link WordprocessingMLPackage} 对象 * @param output 文件输出流 * @throws IOException :IO异常 * @throws Docx4JException : Docx4j异常 */ public void writeToPDFWhithFo(WordprocessingMLPackage wmlPackage, OutputStream output) throws IOException, Docx4JException { Assert.notNull(wmlPackage, " wmlPackage is not specified!"); Assert.notNull(output, " output is not specified!"); try { // Font regex (optional) // Set regex if you want to restrict to some defined subset of fonts // Here we have to do this before calling createContent, // since that discovers fonts //String regex = null; // Refresh the values of DOCPROPERTY fields FieldUpdater updater = new FieldUpdater(wmlPackage); updater.update(true); // .. example of mapping font Times New Roman which doesn't have certain Arabic glyphs // eg Glyph "ي" (0x64a, afii57450) not available in font "TimesNewRomanPS-ItalicMT". // eg Glyph "ج" (0x62c, afii57420) not available in font "TimesNewRomanPS-ItalicMT". // to a font which does PhysicalFonts.get("Arial Unicode MS"); // FO exporter setup (required) // .. the FOSettings object FOSettings foSettings = Docx4J.createFOSettings(); foSettings.setWmlPackage(wmlPackage); foSettings.setApacheFopMime("application/pdf"); // Document format: // The default implementation of the FORenderer that uses Apache Fop will output // a PDF document if nothing is passed via // foSettings.setApacheFopMime(apacheFopMime) // apacheFopMime can be any of the output formats defined in org.apache.fop.apps.MimeConstants eg org.apache.fop.apps.MimeConstants.MIME_FOP_IF or // FOSettings.INTERNAL_FO_MIME if you want the fo document as the result. //foSettings.setApacheFopMime(FOSettings.INTERNAL_FO_MIME); // Specify whether PDF export uses XSLT or not to create the FO // (XSLT takes longer, but is more complete). // Don't care what type of exporter you use Docx4J.toFO(foSettings, output, Docx4J.FLAG_EXPORT_PREFER_XSL); // Prefer the exporter, that uses a xsl transformation // Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); // Prefer the exporter, that doesn't use a xsl transformation (= uses a visitor) // faster, but not yet at feature parity // Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_NONXSL); // Clean up, so any ObfuscatedFontPart temp files can be deleted // if (wordMLPackage.getMainDocumentPart().getFontTablePart()!=null) { // wordMLPackage.getMainDocumentPart().getFontTablePart().deleteEmbeddedFontTempFiles(); // } // This would also do it, via finalize() methods updater = null; foSettings = null; wmlPackage = null; } finally{ IOUtils.closeQuietly(output); } }
Example #3
Source File: WordToPdfRenditionProvider.java From spring-content with Apache License 2.0 | 4 votes |
@Override public InputStream convert(InputStream fromInputSource, String toMimeType) { try { // Font regex (optional) // Set regex if you want to restrict to some defined subset of fonts // Here we have to do this before calling createContent, // since that discovers fonts String regex = null; // Windows: // String // regex=".*(calibri|camb|cour|arial|symb|times|Times|zapf).*"; // regex=".*(calibri|camb|cour|arial|times|comic|georgia|impact|LSANS|pala|tahoma|trebuc|verdana|symbol|webdings|wingding).*"; // Mac // String // regex=".*(Courier New|Arial|Times New Roman|Comic // Sans|Georgia|Impact|Lucida Console|Lucida Sans Unicode|Palatino // Linotype|Tahoma|Trebuchet|Verdana|Symbol|Webdings|Wingdings|MS Sans // Serif|MS Serif).*"; PhysicalFonts.setRegex(regex); WordprocessingMLPackage pkg = WordprocessingMLPackage.load(fromInputSource); // Refresh the values of DOCPROPERTY fields FieldUpdater updater = new FieldUpdater(pkg); updater.update(true); // FO exporter setup (required) // .. the FOSettings object FOSettings foSettings = Docx4J.createFOSettings(); // if (false) { // foSettings.setFoDumpFile(new java.io.File("/tmp/test.fo")); // } foSettings.setWmlPackage(pkg); // ByteArrayOutputStream os = new ByteArrayOutputStream(); String outputfilepath; outputfilepath = "/tmp/temp.pdf"; OutputStream os = new java.io.FileOutputStream(outputfilepath); // Specify whether PDF export uses XSLT or not to create the FO // (XSLT takes longer, but is more complete). // Don't care what type of exporter you use Docx4J.toFO(foSettings, os, Docx4J.FLAG_EXPORT_PREFER_XSL); if (pkg.getMainDocumentPart().getFontTablePart() != null) { pkg.getMainDocumentPart().getFontTablePart() .deleteEmbeddedFontTempFiles(); } return new FileInputStream(outputfilepath); } catch (Exception e) { } return null; }