Tag: 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); […]

在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文件。

强制浏览器在JAVA中下载docx文件会生成损坏的文档

使用JAVA,我试图强制浏览器下载文件。 这是我目前使用的代码: response.reset(); response.resetBuffer(); response.setContentType(mimeType); response.setHeader(“Content-Disposition”, “attachment; filename=\”” + fileName + “\””); InputStream in = new FileInputStream(file); OutputStream out = response.getOutputStream(); IOUtils.copy(in, out); out.flush(); out.close(); in.close(); response.flushBuffer(); 它工作得很好,但是当强制下载docx文档(MS Office 2007+)时,下载的文件已损坏(至少,这就是MS Office告诉我的)。 如果我尝试直接在存储它们的服务器上打开它,则不会出现该错误,这意味着在下载时(而不是在上载时)问题确实会产生干扰。 根据IANA ,此类文件的MIME类型应为application/vnd.openxmlformats-officedocument.wordprocessingml.document (1) ,但指定MIME类型不能解决问题。 网上有几条曲目 ,但它们都不适用于我。 在ASP.NET似乎有一个解决方案 ,但我没有在JAVA找到相应的解决方案 。 我也尝试使用MIME类型application/vnd.ms-word (2) ,但是下载的文件仍然已损坏。 同意MIME类型application/msword (3) 这里建议的人,以及此论坛上提出的通用MIME类型application/octet-stream (4) 。 然后,对于这四种MIME类型中的每一种,我都尝试将下载文件的名称从myfile.docx为myfile.doc (不再是x ),但问题仍然存在。 那么,如何强制下载未损坏的下载 docx文件? 我的代码是否正确?

将样式文本写入.docx文件

我正在尝试编写一个将文本写入.docx文件的应用程序。 我的应用程序使用JTextPane,因此用户可以编写他/她想要的任何内容,它还提供了许多按钮,如粗体,字体颜色,字体大小……等。 我遇到的问题是在写入.docx文件时保持JTextPane上文本的样式。 我对Swing和Apache POI相当新,所以示例代码和/或详细说明会有所帮助。 我有这个:(垫指的是JTextPane) FileOutputStream output = new FileOutputStream(file); XWPFDocument document = new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText(pad.getText()); document.write(output); output.close();

如何使用Apache POI为docx文件中的段落设置标题样式?

我正在尝试使用poi创建一个docx文件,但我无法为段落设置标题样式。 XWPFDocument document= new XWPFDocument(); //Write the Document in file system FileOutputStream out = new FileOutputStream(new File(“C:/Users/2/Desktop/RequirementModelDocument.docx”)); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run=paragraph.createRun(); paragraph.setAlignment(ParagraphAlignment.LEFT); paragraph.setStyle(“Heading1”); run.setText(reqLevel.getName()); run.setBold(true); run.setFontFamily(“Calibri Light (Headings)”); 它就像忽略了paragraph.setStyle(“Heading1”); 线。 我看过apache的例子,但我看不到任何关于这个问题的例子。

使用Apache POI docx在MS Word文档中进行间距和边距设置

我有两个段落,我希望每行前有100磅的空间。 我们在Apache POI有办法吗? 这是代码片段 XWPFDocument doc = new XWPFDocument(); XWPFParagraph documentTitle = doc.createParagraph(); documentTitle.setAlignment(ParagraphAlignment.CENTER); XWPFRun run = documentTitle.createRun(); run.setText(“Paragraph 1”); run.setBold(true); run.setFontFamily(“Calibri”); run.setFontSize(13); run.setColor(“4F81BD”); run.addBreak(); run.setText(“Paragraph 2”); run.setBold(true); run.setFontFamily(“Calibri”); run.setFontSize(13); run.setColor(“4F81BD”); 这里如何在两段之间增加100 pt空间? 有什么方法可以实现这个目标吗? addBreak()不会在两行之间保留任何空格。 以及如何在docx中设置边距? 任何帮助,将不胜感激。 谢谢。

如何使用Apache POI创建简单的docx文件?

我正在寻找一个简单的示例代码或完整的教程,如何使用Apache POI及其底层openxml4j创建docx文件。 我尝试了以下代码(在Content Assist中提供了很多帮助,感谢Eclipse!)但是代码无法正常工作。 String tmpPathname = aFilename + “.docx”; File tmpFile = new File(tmpPathname); ZipPackage tmpPackage = (ZipPackage) OPCPackage.create(tmpPathname); PackagePartName tmpFirstPartName = PackagingURIHelper.createPartName(“/FirstPart”); PackagePart tmpFirstPart = tmpPackage.createPart(tmpFirstPartName, “ISO-8859-1”); XWPFDocument tmpDocument = new XWPFDocument(tmpPackage); //Exception XWPFParagraph tmpParagraph = tmpDocument.createParagraph(); XWPFRun tmpRun = tmpParagraph.createRun(); tmpRun.setText(“LALALALAALALAAAA”); tmpRun.setFontSize(18); tmpPackage.save(tmpFile); 抛出的exception如下: Exception in thread “main” java.lang.NullPointerException at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:235) at […]

Apache POI或docx4j用于处理docx文档

您认为将docx文档作为Java对象读取哪个更好?为什么? 换一种说法。 哪个库支持大多数单词标签?

如何在带有POI的DOCX中使用预定义格式?

我正在使用POI创建一个docx生成器,并希望使用预定义的格式。 Word包括多种格式,如标题,标题1..10等。这些格式是在您使用Word创建的每个DOCX中预定义的。 我想在我的docx生成器中使用它们。 我尝试了以下但是格式没有应用: paragraph = document.createParagraph(); lastParagraph.setStyle(“Heading1”); 我也试过“标题1”,“heading1”和“Heading1”作为样式,但它们都没有奏效。 API文档未显示任何详细信息。 我分析了用Word 2007创建的docx文件,发现“Heading1”是正确的。 不幸的是,样式没有在docx中定义。 我是否必须手动创建此样式? 谁能指出我正确的解决方案?

将XML转换为JSON格式

我必须将docx文件格式(采用openXML格式)转换为JSON格式。 我需要一些指导方针来做到这一点。 提前致谢。