Disclaimer:

我正在使用iText 5.我知道这通常是不赞成的(与使用iText 7相比),但我正在处理使用iText 5的大量遗留代码,升级不受我的控制 .

Requirements:

A "simple" PDF / A作为输入接收(仅文本,这些是从RTF生成的),以及与所需的第一页长度(以英寸为单位)对应的浮点值 .

必须输出与输入PDF相同的PDF / A,除了它的分页如下:第一页长度=输入值;每个后续(不是第一个或最后一个)页面将填充标准页面长度;最后一页将被截断在距离页面底部最近的内容之下的恒定点数 . 请注意,输入和输出宽度将是相同且恒定的 .

Progress / Approach:

我扩展了 SimpleTextExtractionStrategy 以生成包含字体信息(大小和族,粗体或斜体等)的XML以及位置信息(相对于输入的第一页左上角的原点的绝对坐标系统PDF)对于从输入PDF中提取的每个"span"文本 .

然后,我逐页生成一个新的PDF(根据上面列出的要求,每个页面都是所需的长度),根据每个新页面的边界使用LINQ过滤提取的XML信息,并在适当的位置添加适当格式的文本使用 ColumnText.ShowTextAligned(...) .

Problem:

上面概述的方法很好 . 它生成具有所需页面结构的PDF,但某些信息在翻译时丢失,即彩色文本和带下划线的文本 . 虽然不应在这些PDF中看到彩色文本,但绝对必须检测带下划线的文本 .

这组要求还应包括带表格的PDF . 我最初计划实现一个不同的模块,该模块遵循表格PDF的相同界面,因为它们是从RTF生成的PDF中单独生成和使用的,而且iText内置了相对强大的表格功能 .

上面提到的两个问题,再加上我所描述的方法源于重用现有代码的尝试,这让我相信完全不同的方法可能是必要的,或者至少要好得多 . 在我看来,应该有一种方法来捕获内容字节信息并根据需要剪辑它以“重新分页”输入PDF,只担心移动沿页面边界的内容 .

基本上,我正在寻找(基于iText)推荐更好的方法 . 伪代码类型的答案或只是对可能有用的类/接口的建议是可接受的 . 虽然将文本和表格放在一起会很好,但任何与一个或另一个相关的建议也会受到赞赏 . 我已经仔细阅读了iText网站上的大部分可用文档和其他SO问题,但还没有找到我正在寻找的内容 .

请注意,此问题中不包含任何代码,因为我正在寻找与我尝试过的完全不同的高级方法 .

Edit:

我以前没有注意到它,但是我重用字体的方式(类似于this)导致了一些意想不到的(但是记录在案)这样的行为 . 似乎我需要避免在文本级别提取重新分页的信息,因为很难确保输入和输出之间字体的连续性 .

java pdf分页显示_使用iText“重新分页”PDF相关推荐

  1. 分页技巧_实现第一个分页功能(回复列表中的分页)

    分页技巧_实现第一个分页功能(回复列表中的分页) ======================================== 假设共25条数据,每页显示10条,则共3页 first  max - ...

  2. mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...

    基本的查询语句​ select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名​ select 字段名 as 别名 from 表名称;​ ...

  3. antd 实现pdf 预览_解决react项目中PDF的显示与打印问题

    最近项目中有这样一个需求: 1. 页面中可以显示pdf 2. 不希望把整个页面打印下来,只打印显示PDF的部分,可以使用浏览器自带打印功能 PDF文件的显示 拿到这个需求,真时一头雾水.因为没有做过类 ...

  4. JAVA删除pdf空白页_【教程】Spire.PDF 教程:在C# 删除 PDF 中的空白页

    扫描双面打印纸张文档所创建的PDF可能包含空白页面,有时候空白页也可能是有意插入的. 在本文中,您将学习如何使用Spire.PDF检测并删除PDF文件中的空白页面. 空白页面通常被定义为不包含任何内容 ...

  5. java复制pdf_防止复制使用iText生成的pdf内容

    正如@YuriyGalanter所指出的,PDF中的限制性权限主要是在PDF加密的上下文中定义的,参见PDF规范的第7.6.3.1节ISO 32000-1:2008: 如果指定了密码或访问限制,则应对 ...

  6. php ajax mysql 分页查询_基于PHP_MySql_Ajax的分页技术方案

    一.引言 Ajax的全称是AsynchronousJavaScriptAndXML(异步JavaScript和XML),它不是一项新技术,而是很多成熟的技术的集合. 和Applet,Flash相比,A ...

  7. python pdf 图片水印_怎样用python给pdf批量添加水印并加密

    很多时候需要给pdf添加水印,而且还要加密文件,这些在Python中是如何实现的呢?学过编程的小伙伴准备好迎接今天的挑战吧. 1.设置路径 import os os.getcwd() os.chdir ...

  8. python打印pdf特定页面_使用Python自由切分pdf文件提取任意页面

    这个小知识来自公众号[python小屋] 问题描述: 给定一个PDF文件,对其进行任意切分,提取其中任意页面,保存为新的PDF文件. 准备工作: 安装扩展库PyPDF2,参考命令 pip instal ...

  9. pdf阅读器_适用于Windows的最佳PDF阅读器

    pdf阅读器 Getting a good PDF viewer is easier than ever. Modern web browsers like Google Chrome, Mozill ...

  10. java创建pdf空白页_使用itext将html转成PDF,PDF空白的问题。

    我将一个html转换成Pdf,结果转出的PDF是空白的. 经过排查,导致的原因是里面有一个最外层的div设置了CSS样式为width: 800px; 这个数字如果设置成660px就没有问题,再大就会空 ...

最新文章

  1. php和python对比-从PHP与Python的语言比较去了解什么是图灵完备
  2. java 编程思想 笔记_java编程思想笔记20170215
  3. Linux C中内联汇编的语法格式及使用方法
  4. dsd语言证书c1是什么,DSD一级德语语言证书考试在嘉兴高级中学举行
  5. linux上运行onedrive,教你如何在Linux中同步微软 OneDrive
  6. python学了真的很有用吗-python学了真的很有用吗?当然!赶紧学,不学后悔!
  7. opencv外接矩形矫正
  8. SPSS遇到缺失值怎么办?删除还是替换?【SPSS 067期】
  9. jvm System.gc()说明
  10. 【江枫 】Oracle 9i和10g在create index和rebuild index的统计信息的区别
  11. 蚂蚁区块链开放联盟链发布会 | 巴比特全程支持
  12. Java MD5和SHA256等常用加密算法
  13. 青蛙过河程序及其解析
  14. 电子产品销售分析练习项目
  15. 三种简单的数字倒叙方式
  16. 张一鸣没动手,王兴不紧张
  17. 今年 NFT 爆火,如何快速入行?(艺术家完整指南)
  18. 洛谷 P1747 好奇怪的游戏
  19. 【学习打卡】CAM可解释性分析-算法讲解
  20. 用计算机对视频进行剪裁和编辑,如何裁剪视频?怎么在电脑上裁剪视频?

热门文章

  1. 机器学习算法——神经网络4(RBF神经网络)
  2. Oracle Instant Client安装与配置
  3. 从零开始的车牌识别课题设计(一)
  4. UART RS232 RS485协议原理及应用
  5. 程序员思维训练500题(附带答案)
  6. 宜宾学院教务系统(金智教务系统)成绩爬虫
  7. win10 安装IIS
  8. 完美手柄震动效果-xbox360手柄模拟器下载
  9. Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
  10. 使用python把txt文件转为csv文件并且利用自己想要的分割符号