zkh152 / xdocreport

Automatically exported from code.google.com/p/xdocreport
0 stars 0 forks source link

POI ERROR: Expecting one Styles document part, but found 0 #466

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. I have a word document, after
2. With POI I replace some text with other text and as specific tag for an 
image, after
3. is generate a word document with new text and image
4. but when I convert the document to pdf type i got error:
org.apache.poi.xwpf.converter.core.XWPFConverterException: 
java.lang.IllegalStateException: Expecting one Styles document part, but found 0
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:59)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:37)
    at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45)
    at poi38.ooxmlToPDF.createPDF(ooxmlToPDF.java:53)
    at poi38.ooxmlToPDF.main(ooxmlToPDF.java:18)
Caused by: java.lang.IllegalStateException: Expecting one Styles document part, 
but found 0
    at org.apache.poi.xwpf.usermodel.XWPFDocument.getStyle(XWPFDocument.java:441)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:192)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:186)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.createStylesDocument(XWPFDocumentVisitor.java:161)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.<init>(XWPFDocumentVisitor.java:154)
    at org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.<init>(PdfMapper.java:149)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:54)
    ... 4 more
Process exited with exit code 0.

What is the expected output? What do you see instead?
 - A pdf file

What version of the product are you using? On what operating system?
  - POI 3.8, xdocreport-1.0.4.jar, itext2.1.7.jar

Please provide any additional information below.

Although POI is modifying doc, I think that process poi is adding some wrong, 
because I try convert to PDF i catch error.
If I open the document with microsoft office and remove image and insert the 
same image and save, after the process run fine.

Original issue reported on code.google.com by rramos0...@gmail.com on 23 Feb 2015 at 7:56

GoogleCodeExporter commented 9 years ago
Please your kind help.

Original comment by rramos0...@gmail.com on 23 Feb 2015 at 7:57

suraj-mathew commented 3 years ago

This is a very old post. But still in 2020 i faced the same issue and i struggled to find a single answer. Hence thought of posting so that someone might get benefit.

I did a reverse engineer by going into the 3rd party jar where this error was occurring and added the "food" in respective Word document generator code that solved the pdf converter's hunger. :-)

Surprisingly, this issue was shown only to the word document that was created using Apache POI...! If you try to use a word document that was created using MS Office, there wont be any issue.. :-)

So, while we create table in a word document via POI, we need to add a line immediately after the createTable() statement

XWPFTable table = outputDoc.createTable(); table.getCTTbl().addNewTblGrid();

iamlivinsunny commented 2 years ago

Hi, I am facing the same issue. But in my case I am using only paragraphs and images. Were you able to find the solution in those cases.

fr.opensagres.poi.xwpf.converter.core.XWPFConverterException: java.lang.IllegalStateException: Expecting one Styles document part, but found 0 at fr.opensagres.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:71) at fr.opensagres.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:39) at fr.opensagres.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:46) at utility.PDFHandle.generatePDF(PDFHandle.java:35) at utility.Reporter.saveReport(Reporter.java:83) at tests.TC001_ApplicationLogInAndInitiateSIP_Temp.resetConfig(TC001_ApplicationLogInAndInitiateSIP_Temp.java:55) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133) at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62) at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385) at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321) at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:637) at org.testng.TestRunner.afterRun(TestRunner.java:877) at org.testng.TestRunner.run(TestRunner.java:599) at org.testng.SuiteRunner.runTest(SuiteRunner.java:377) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332) at org.testng.SuiteRunner.run(SuiteRunner.java:276) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212) at org.testng.TestNG.runSuitesLocally(TestNG.java:1134) at org.testng.TestNG.runSuites(TestNG.java:1063) at org.testng.TestNG.run(TestNG.java:1031) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77) Caused by: java.lang.IllegalStateException: Expecting one Styles document part, but found 0 at org.apache.poi.xwpf.usermodel.XWPFDocument.getStyle(XWPFDocument.java:547) at fr.opensagres.poi.xwpf.converter.core.styles.XWPFStylesDocument.(XWPFStylesDocument.java:196) at fr.opensagres.poi.xwpf.converter.core.styles.XWPFStylesDocument.(XWPFStylesDocument.java:190) at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.createStylesDocument(XWPFDocumentVisitor.java:182) at fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.(XWPFDocumentVisitor.java:175) at fr.opensagres.poi.xwpf.converter.pdf.internal.PdfMapper.(PdfMapper.java:155) at fr.opensagres.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:56) ... 29 more

This is the complete error I am getting

suraj-mathew commented 2 years ago

Try upgrading to latest poi versions and see. Else, as i have mentioned above, you need to decompile the poi jar file and look at PdfConverter.java:71 to see why that error is occurring. Then find the function in poi that supplies that required item and use it (Sadly, not an easy task. but no other go)