使用itext向pdf插入图片时,如何设置文本样式、图片位置??

使用itext向pdf插入图片时,如何设置文本样式、图片位置??

你曾走过我的故事 发布于 2021-11-25 字数 319 浏览 816 回复 10

在java中,使用itext在做doc转pdf时,一直没能找到完美的办法支持doc中的图片、文本样式等格式,所以现在想先提取出文档内容,再通过itext填入pdf;

已经提取doc文档内容,现在用itext将内容填入pdf中,请问:

1、插入文本时,如何获取到每个文本的样式??

2、插入图片时,如何控制插入图片的位置??

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

少女净妖师 2021-12-01 10 楼

回复
doc和docx底层结构都不一样,解析起来非常麻烦……

风柔一江水 2021-12-01 9 楼

回复
有一个jar包,然后自己写了一下转换的代码,本来我想开源的,但是没啥时间提交到git@osc,所以没搞,可以交流一下,实现了docx转pdf,doc文字过滤,docx文字过滤,pdf文字过滤。

平定天下 2021-12-01 8 楼

回复
不知道是否方便共享学习一下?我的Email是qt1143@163.com.....

月亮是我掰弯的 2021-12-01 7 楼

回复
转pdf的过程实现了保留文本样式等格式了么

彩扇题诗 2021-12-01 6 楼

使用第三方接口,https://www.showapi.com/api/lookPoint/770

一个人的旅程 2021-12-01 5 楼

目前搞定了docx转pdf,doc的没搞定,我的想法是读取出所有的内容然后往pdf里插,但是这样问题遇到很多,最后放弃了,楼主有好的方法一定要告知下啊

爱的那么颓废 2021-12-01 4 楼

多谢帮助,刚才试用了一下,run.getFontName可以获取到字体名称,如“楷体”,但是代码中如何转换成Font呢?试用Font.getFamily("")是获取不到的

像你 2021-12-01 3 楼

poi我没用过,从网上搜了一下,这个应该可以解决你的问题:

http://stackoverflow.com/questions/17584413/how-to-read-font-size-of-each-word-in-a-word-document-using-poi

HWPFDocument doc = new HWPFDocument (fileStream);

WordExtractor we = new WordExtractor(doc);

Range range = doc.getRange();

String[] paragraphs = we.getParagraphText();

for (int i = 0; i < paragraphs.length; i++) {

  Paragraph pr = range.getParagraph(i);

  int k = 0;

  while (true) {

     CharacterRun run = pr.getCharacterRun(k++);

     System.out.println("Color: " + run.getColor());

     System.out.println("Font: " + run.getFontName());

     System.out.println("Font Size: " + run.getFontSize());

     if (run.getEndOffSet() == pr.getEndOffSet())

       break;

  }

}

拥有 2021-11-30 2 楼

插入的时候定义插入的样式我知道,但是文本是通过poi从doc/docx中抓取的,原有文本的样式如何获取呢?

鹤舞 2021-11-29 1 楼

插入文本时样式可以用Font来定义:

Document doc = new Document();
doc.open();
Paragraph text = new Paragraph("your text", new Font(Font.getFamily("TIMES_ROMAN"), 18, Font.BOLD));
text.setAlignment(Element.ALIGN_CENTER);
doc.add(text);

以前插入过PDF文档,是用PdfReader读取然后用PdfWriter插入。插入图片应该是一样的原理:

PdfWriter.getImportedPage(new PdfReader(bufferdInputStream), pageNumber);