将文档转换为 pdf 时如何将 pTab 元素添加到 docx4j
How can I add pTab elements to docx4j while converting document to pdf
我在使用 Java 中的 docx4j 库将 文档转换为 pdf 时遇到一些错误. 可悲的是,我的错误是这样的
NOT IMPLEMENTED support for w:pict without v:imagedata
它显示在转换后的 pdf 上,而不是在我的 java 终端中显示错误。
我浏览了一些文章和问题,因此找到了这个 converting docx to pdf。但是,我不确定如何在我的代码中使用它或转换它。这是我的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import org.docx4j.convert.out.pdf.viaXSLFO.PdfSettings;
import org.docx4j.fonts.PhysicalFont;
import org.docx4j.fonts.PhysicalFonts;
import org.docx4j.model.structure.SectionWrapper;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
public class docTopdf {
public static void main(String[] args) {
try {
InputStream is = new FileInputStream(
new File(
"test.docx"));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
.load(is);
List<SectionWrapper> sections = wordMLPackage.getDocumentModel().getSections();
for (int i = 0; i < sections.size(); i++) {
wordMLPackage.getDocumentModel().getSections().get(i)
.getPageDimensions();
}
PhysicalFonts.discoverPhysicalFonts();
@Deprecated
Map<String, PhysicalFont> physicalFonts = PhysicalFonts.getPhysicalFonts();
// 2) Prepare Pdf settings
@Deprecated
PdfSettings pdfSettings = new PdfSettings();
// 3) Convert WordprocessingMLPackage to Pdf
@Deprecated
org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
wordMLPackage);
@Deprecated
OutputStream out = new FileOutputStream(
new File(
"test.pdf"));
conversion.output(out, pdfSettings);
} catch (Throwable e) {
e.printStackTrace();
}
}
}
还有我的pom.xml
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.2.1</version>
</dependency>
任何帮助将不胜感激,因为我对这种转换一窍不通。提前致谢
通过 XSL FO 创建 PDF 不支持 w:pict 没有 v:imagedata(即不是简单图像的图形)。
虽然您可以通过适当配置日志记录来抑制该消息,但您的 PDF 输出将会有损。
您的选择是更正输入的 docx(即使用图像而不是您当前拥有的任何图像),或使用具有适当支持的 PDF 转换器。对于一个选项,请参阅 https://www.docx4java.org/blog/2020/03/documents4j-for-pdf-output/
我在使用 Java 中的 docx4j 库将 文档转换为 pdf 时遇到一些错误. 可悲的是,我的错误是这样的
NOT IMPLEMENTED support for w:pict without v:imagedata
它显示在转换后的 pdf 上,而不是在我的 java 终端中显示错误。
我浏览了一些文章和问题,因此找到了这个 converting docx to pdf。但是,我不确定如何在我的代码中使用它或转换它。这是我的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import org.docx4j.convert.out.pdf.viaXSLFO.PdfSettings;
import org.docx4j.fonts.PhysicalFont;
import org.docx4j.fonts.PhysicalFonts;
import org.docx4j.model.structure.SectionWrapper;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
public class docTopdf {
public static void main(String[] args) {
try {
InputStream is = new FileInputStream(
new File(
"test.docx"));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
.load(is);
List<SectionWrapper> sections = wordMLPackage.getDocumentModel().getSections();
for (int i = 0; i < sections.size(); i++) {
wordMLPackage.getDocumentModel().getSections().get(i)
.getPageDimensions();
}
PhysicalFonts.discoverPhysicalFonts();
@Deprecated
Map<String, PhysicalFont> physicalFonts = PhysicalFonts.getPhysicalFonts();
// 2) Prepare Pdf settings
@Deprecated
PdfSettings pdfSettings = new PdfSettings();
// 3) Convert WordprocessingMLPackage to Pdf
@Deprecated
org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
wordMLPackage);
@Deprecated
OutputStream out = new FileOutputStream(
new File(
"test.pdf"));
conversion.output(out, pdfSettings);
} catch (Throwable e) {
e.printStackTrace();
}
}
}
还有我的pom.xml
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>3.2.1</version>
</dependency>
任何帮助将不胜感激,因为我对这种转换一窍不通。提前致谢
通过 XSL FO 创建 PDF 不支持 w:pict 没有 v:imagedata(即不是简单图像的图形)。
虽然您可以通过适当配置日志记录来抑制该消息,但您的 PDF 输出将会有损。
您的选择是更正输入的 docx(即使用图像而不是您当前拥有的任何图像),或使用具有适当支持的 PDF 转换器。对于一个选项,请参阅 https://www.docx4java.org/blog/2020/03/documents4j-for-pdf-output/