Tag: docx4j

Doc4j – 在使用文档中的表格将docx转换为PDF时出现问题

我刚刚通过docx4j的示例webapp尝试了docx文档: http : //webapp.docx4java.org/OnlineDemo/docx_to_pdf_fop.html生成的PDF文件表格格式不正确。 实际上这些表格明显不合适…… 我只是想知道是不是因为docx4j没有正确支持表格,或者它是某种错误。 如果是这样,如果有人能指出我正确的信息。

替换.docx(Apache POI,Docx4j或其他)中的文本模板

我想使用正则表达式(java RegEx)在MS Word ( .docx )文档中进行替换: Example: …, с одной стороны, и %SOME_TEXT% именуемое в дальнейшем «Заказчик», в лице %SOME_TEXT% действующего на основании %SOME_TEXT% с другой стороны, заключили настоящий Договор о нижеследующем: … 我试图让文本模板(比如%SOME_TEXT% )使用Apache POI – XWPF并替换文本,但不能保证替换,因为POI分离了runs =>我得到这样的东西( System.out.println(run.getText(0)) ): … , с одной стороны, и % SOME_TEXT % именуемое в дальнейшем «Заказчик», в […]

docx4j转换html-> docx-> html

我正在使用docx4j开发我的第一个项目…我的目标是将xhtml从webapp(ckeditor创建的html)导出到docx,在Word中编辑它,然后将其导回到ckeditor wysiwyg。 (* http://www.docx4java.org/forums/xhtml-import-f28/html-docx-html-inserts-a-lot-of-space-t1966.html#p6791?sid=78b64a02482926c4dbdbafbf50d0a914的 crosspost将在何时更新回答) 我创建了一个包含以下内容的html测试文档: TEST LINE 1TEST LINE 2 然后我的代码从这个html创建一个docx,如下所示:WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage .createPackage(); NumberingDefinitionsPart ndp = new NumberingDefinitionsPart(); wordMLPackage.getMainDocumentPart().addTargetPart(ndp); ndp.unmarshalDefaultNumbering(); XHTMLImporterImpl xHTMLImporter = new XHTMLImporterImpl(wordMLPackage); xHTMLImporter.setHyperlinkStyle(“Hyperlink”); wordMLPackage.getMainDocumentPart().getContent() .addAll(xHTMLImporter.convert(new File(“test.html”), null)); System.out.println(XmlUtils.marshaltoString(wordMLPackage .getMainDocumentPart().getJaxbElement(), true, true)); wordMLPackage.save(new java.io.File(“test.docx”)); 我的代码然后尝试将docx BACK转换为html,如下所示:WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage .createPackage(); NumberingDefinitionsPart ndp = new NumberingDefinitionsPart(); wordMLPackage.getMainDocumentPart().addTargetPart(ndp); ndp.unmarshalDefaultNumbering(); XHTMLImporterImpl xHTMLImporter = […]

如何使用docx4j将带有马拉地语文本的HTML文本写入PDF文档?

我使用docx4j从HTML文本创建PDF文档。 HTML文本中包含一些英文和马拉地语文本。 英文文本在pdf中正确显示。 但是马拉地语文本没有显示在生成的pdf中。 它代替文本显示方框。 以下是我正在使用的代码。 import java.io.FileOutputStream; import org.docx4j.Docx4J; import org.docx4j.convert.in.xhtml.XHTMLImporterImpl; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; public class ConvertInXHTMLFragment { static String DEST_PDF = “/home/Downloads/Sample.pdf”; public static void main(String[] args) throws Exception { // String content = “Hello”; String content = “पासवर्ड”; WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(); XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage); wordMLPackage.getMainDocumentPart().getContent().addAll(XHTMLImporter.convert(content, null)); Docx4J.toPDF(wordMLPackage, new FileOutputStream(DEST_PDF)); } […]

使用带有多个标头的docx4j创建docx

是否可以使用docx4j为每个不同的部分创建新的标题? 我已经看到MS Word通过使用分节符创建不同的部分来提供创建不同标题的function。 但我想使用docx4j实现此function。 例如:如果我要创建可能包含产品列表,某些条款和条件以及其他一些部分的docx文件。 并且我希望每个部分的标题都显示在页面顶部(如产品摘要:第1页,共2页,条款和条件:第3页,共3页)。 此外,我正在使用MainDocumentPart.addAltChunk()方法在文档中编写html内容以创建Document。 提前致谢。 – 问候, Sanshey Sachdeva

如何使用DOCX4J在docx文件生成中应用新行

通过我看过的教程。 我学会了如何在生成docx文件时添加文本。 但是每次我添加一行文字。 我注意到第一行文本和第二行文本之间总是有一个空格。 就像两次输入回车键一样。 我知道主要原因是每次我添加一行文字,我都会使用一个段落。 并且段落以另一段后面的空格开头。 这是我添加文本的方式 ObjectFactory factory; factory = Context.getWmlObjectFactory(); WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(); P spc = factory.createP(); R rspc = factory.createR(); rspc.getContent().add(wordMLPackage.getMainDocumentPart().createParagraphOfText(“sample”)); spc.getContent().add(rspc); java.io.InputStream is = new java.io.FileInputStream(file); wordMLPackage.getMainDocumentPart().addObject(spc); 所以这段代码成功运行并产生正确的输出。 但是当我添加另一段时。 或文字。 我希望它只是在第一行文本之下。 有没有办法,我可以添加一个简单的文本行而不使用段落? 提前致谢 编辑:我也试过像这样添加一个简单的org.docx4j.wml.Text Text newtext = factory.createText(); newtext.setValue(“sample new text”); wordMLPackage.getMainDocumentPart().addObject(newtext); 程序将运行但是当我打开生成的docx文件时,它只会提示一条消息,说明内容有问题。

Docx4j – 如何用值替换占位符

我一直在尝试使用示例FieldMailMerge和VariableReplace,但似乎无法运行本地测试用例。 我基本上试图从一个docx模板文档开始,让它从一个模板创建x docx文档并替换变量。 在下面的代码中, docx4jReplaceSimpleTest()尝试替换单个变量但未能这样做。 模板文件中的$ {}值将作为处理的一部分被删除,因此我相信它正在找到它们但不会因某些原因替换它们。 据我所知,这可能是由于示例代码的注释中所解释的格式化,但是为了让事情正常进行故障排除,我仍在尝试它。 在docx4jReplaceTwoPeopleTest()下面的代码中,我想要工作的那个,我正在尝试用我认为正确的方式来做,但那不是找到或替换任何东西。 它甚至没有从docx文件中删除$ {}。 public static void main(String[] args) throws Exception { docx4jReplaceTwoPeopleTest(); docx4jReplaceSimpleTest(); } private static void docx4jReplaceTwoPeopleTest() throws Exception { String docxFile = “C:/temp/template.docx”; WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(docxFile)); List<Map> data = new ArrayList<Map>(); Map map1 = new HashMap(); map1.put(new DataFieldName(“Person.Firstname”), “myFirstname”); map1.put(new DataFieldName(“Person.Lastname”), “myLastname”); data.add(map1); […]

docx模板Docx4j替换Java中的文本

我是Docx4j的新手,我的任务是替换docx模板的一些文本。 我阅读了docx4j的入门指南,但我认为我并不完全理解整个概念。 好吧无论如何……我已经尝试了[Docx4j的unmashalling模板] [1],它在给定的docx上运行良好,但是当我在自己的模板上尝试它时,我遇到了同样的问题。例外说,HashMap没有包含有效的键或值,因此它不会替换占位符。 我换了 通过禁用拼写检查,但它仍然无法工作……而且运行应用程序也需要相当长的时间。 在不了解Getting_Started.pdf中的数据绑定示例,所以我的选项用完了…… 我怎样才能简单地从docx中替换一些String-Texts? 编辑:我发现如果我向unmarshallFromTemplate.docx添加一些文本并保存它,它不会替换新的文本行。 – 标签以某种方式分成多个标签: My favourite ice cream is ${DEGREE}. 编辑document.xml中的T​​ext,添加缺少的信息并没有多大帮助。 好吧无论如何这里是我使用的Template.docx的document.xml: http : //uploaded.net/file/vz4qr23o 编辑2: 好吧,伙计们 我为自己找到了一个非常合适的解决方法,并且不知道为什么花了这么长时间来解决它。 就像我说的那样:那些分裂的运行,我认为原因就是$ {}。 因此,我只是在我的占位符之前使用了一个#并重写了每个占位符,这样它就可以一次运行。 不得不切换几次到document.xml并重写段落,但后来它工作。 然后我简单地使用了替换(占位符,xml)并替换了编组的document.xml的文本,然后我再次解组了它。 工作。 故事结束,他妈的每晚构建或映射。 谢谢

在java中读取.docx文件

我试图在java中读取一个文件,以下是代码: public void readFile(String fileName){ try { BufferedReader reader= new BufferedReader(new FileReader(fileName)); String line=null; while((line=reader.readLine()) != null ){ System.out.println(line); } }catch (Exception ex){} } 在txt文件的情况下工作正常。 但是在docx文件的情况下,它正在打印奇怪的字符。 我怎样才能在Java中读取.docx文件。

如何将.docx的段落复制到另一个.docx withJava并保留样式

我试图将内容从.docx中的特定段落复制到另一个空的.docx。我遇到的问题是来自source.docx的样式,项目符号,编号等不会保留在目标.docx.Here是我的代码 任何人都可以告诉我上面的代码中添加了哪些更改? 提前致谢!! public class WordFinal { public static void main(String[] args) throws IOException, XmlException { XWPFDocument doc = new XWPFDocument(new FileInputStream(“source.docx”)); XWPFDocument destDoc =new XWPFDocument(); OutputStream out = new FileOutputStream(“Destination.docx”); XWPFParagraph pr =doc.getParagraphs()[1]; String copy=pr.getText(); XWPFParagraph paragraphOne = destDoc.createParagraph(); XWPFRun paragraphOneRunOne = paragraphOne.createRun(); paragraphOneRunOne.setText(copy); destDoc.write(out); } }