市面上 90%的 PDF 软件都是免费查看,付费编辑。要实现 PDF 的编辑功能会很难吗?
![]() |
1
tcper 18 天前 ![]() PDF 是一个封装格式,主要用于渲染的
所以 PDF 的编辑是把 PDF 的内容读出来,生成一个类似 office word 让你编辑,保存的时候重新导出 PDF 从软件开发者角度看,导出功能有很多标准的库可以用,这个编辑功能是他们自己费很多功夫研发的,自然都用来收费了。 |
![]() |
2
HaroldFinchNYC 18 天前
我正在写一个非常简单的 nodejs addon with c++ pdf library
我设置为 private 所以,将来肯定是要收费的 |
![]() |
3
ratazzi 18 天前 via iPhone ![]() 当然很难,技术规范将近两千页,涉及文本渲染、图形渲染,字体处理等
|
![]() |
4
xtreme1 18 天前
而且 adobe 有很多私有实现没写到 pdf 的 iso 标准中的
|
5
zhengfan2016 18 天前
|
6
kzfile 18 天前
pdf 是偏向固化的格式,二次编辑就是很麻烦
|
7
ccpp132 18 天前 ![]() pdf 编辑很恶心的,就像做个工具让你去修改一个编译好的程序
|
![]() |
8
ratazzi 18 天前 via iPhone ![]() 图形不说,文本渲染就是个巨坑,unicode 多种文字,字体 subset
|
![]() |
9
putaozhenhaochi 18 天前 via Android
是的 我试用了一堆应用。后来开了 wps 会员
|
![]() |
10
Rorysky 18 天前
博大精深
|
11
kokerkov 18 天前
如果你说的页面之间的编辑,比如旋转合并拆分,那么挺简单的。
如果是指你要直接在上面编辑文本,那么从技术上是很蛋疼的存在。因为 PDF 本来就是用来显示而不是用来编辑的,出版界最终输出 pdf 文件给出版社印刷。比较类似 JPG 文件,它不支持图层(本意就只是用来显示的),所以你直接编辑 JPG 是很蛋疼的。 一般来说 PDF 编辑只限于修改一点点小错误,如果你真的想排版,请使用专门的排版软件。简单的话,可以用 power point 。更专业一点用微软 publisher ,终极的就是 adobe indesign. |
12
kokerkov 18 天前
@putaozhenhaochi 没有正版情节可以用 foxit pdf editor, 挺好用的。
|
![]() |
13
evan9527 18 天前
很难,所以我都是转换成图片,等于编辑图片,就很简单但是费时间。
|
![]() |
14
angrylid 18 天前
处理这种东西需要大量脏活累活。原来稍微研究过 OOXML ,规范文档就有五千页,还有一些微软自己的私有实现和标准不兼容的,但是因为他的垄断地位你又不得不以他为准。PDF 的情况估计类似
|
15
Mithril 18 天前
PDF 就是个桶,里面装的东西乱七八糟。虽然有标准,但你照着标准做产品,做完了大概率你的客户会给你报各种东西编辑不了。
等你挨个反馈处理完又是一大笔精力和投资。很难做到免费去搞这些细节。 |
17
chutsetien 18 天前 ![]() 就这么说吧,OP 你这句话,PDF 完全可以做到让它被记录的字符顺序是这样:
要件辑 9F 免付很现吗会实编的 P 看市软面。都,?编 0D 查 % 上功 F 是费难 PD 辑能的费 但是显示出来还是你所说的那样一行。 (更有甚者,被存储下来的都是一些不存在的字,真复制出来全是框框,但是显示出来依旧正常。) |
![]() |
18
putaozhenhaochi 18 天前
|
![]() |
19
totoro52 18 天前
技术不难,难在规范一大堆,而且各家各的标准,你想要编辑任意的 pdf 文件还要去研究其他人的标准
|
![]() |
20
ysc3839 18 天前
举个例子:
Word 里面一段文字,设置了开头缩进,然后文字很长自动换行了。 实际在 PDF 里面,是先定位到缩进后的位置,输出这一行文字。然后再定位到下一行的位置,输出下一行文字。 等于是变成了 PPT ,一行文字一个文本框这样。要编辑的话,就只能编辑这一个文本框内的文字。 而且上述还只是比较标准的 PDF ,实际上完全可以输出一个文字定位一次,等于每个文字都是一个独立的文本框。甚至还有输出图片,然后附加上隐藏的可选中文字这种操作。 |
![]() |
21
lucasj 18 天前
话又说回来,为什么要去编辑 PDF 。PDF 的本意不就是不可编辑吗?
|
22
Chevalierbite 18 天前
可以试试 ABBYY 的 PDF 编辑,一直在使用。
|
23
kokerkov 18 天前
@chutsetien 估计你遇到的是方正排版软件输出的 pdf 。他们用的字体编码不是通用的...
|
24
tinytoadd 18 天前
这点确实很奇怪,按理来说页面重排、添加和删除 应该不难。但开源软件和商业软件里似乎没找到用起来很顺手的。反而是 Mac 自带的预览在这方面做的很好,可以 drag and drop 轻松搞定。
|
![]() |
25
akira 18 天前
是的,难
|
![]() |
26
ShadowPower 18 天前
很难,类似于从机器码反编译成源码,而且还没有完整的手册可以参考
|
27
ccc008 18 天前 ![]() Adobe 自己家的 pdf 编辑器 Acrobat 都不好用
|
![]() |
28
silvernoo 18 天前 ![]() 史诗 pdfgear
|
![]() |
29
ksmiloLove 18 天前
是的,难,快逃
|
![]() |
30
liuzimin 18 天前 ![]() @silvernoo #28 我也在用这个 pdf gear ,真的好用,不光能免费编辑,而且还有各种转换和导出,而且本体还很轻巧!真是神了。不过好像官方说不排除后续会改收费?反正我是把当前版本备份收藏了。
|
31
iseki 18 天前 via Android
工作量很大,这种规模的软件很难不以盈利为目的
|
![]() |
32
june4 18 天前
这和 pdf 格式本身有多复杂关系不大,主要是转成 pdf 就丢了所有原 word 格式信息,现在要重转回可编辑的 word ,几乎快和从图片转回 word 差不多了,永远做不完美只能尽量准确
说实在的就是人类内耗,如果原始 pdf 可以加个 meta 信息把原格式放入就没这么多事了 |
![]() |
33
yolee599 18 天前 via Android ![]() 难,而且是非常难,PDF 就是一个输出的格式,他就不是用来编辑的。你这个问法相当于:.exe 编辑技术很难吗?
|
34
caiqichang 18 天前
@lucasj #16 照这么说,没有加密的软件都算开源
![]() |
![]() |
35
laLuna 18 天前
PDF 创造之初就是为了避免被随意修改吧,保证大家看到的是一样的内容
|
36
bjtugun 18 天前 via Android
有按次按天付费的吗,就一年用那么几次,不想开月会员
|
37
huaweii 18 天前 via Android
这个问题稍微了解下甚至问下 GPT 就能得到很全面的答案了。我希望楼主你问这个问题是为了骗金币的,不然的话你作为程序员这点 sense 都没有的话...
|
![]() |
38
xiri 18 天前 via Android ![]() 多年前看到的一篇文章,解释的挺清楚的:理解数字世界中的纸张:PDF | 科普
https://sspai.com/post/47092 PDF 与其说是一种数字文档,不如说是实体文档在数字世界中的影像。对 PDF 的操作,很大程度上可以看成对真实纸张的操作,只是操作环境从物理世界换到了数字世界而已。PDF 的创建就是一种虚拟的打印,复制 PDF 文字的过程更像是一种抄写,而 PDF 的编辑实质上是一种涂改。 这也是为什么“导出”PDF 有时也叫作“打印” |
![]() |
39
xiri 18 天前 via Android
@xiri 比如删掉一段文字中的一个字符这个简单的操作,对于 TXT 之类的电子文档格式,被删字符后的所有字符顺序接上来是很自然的。
但是对于已经打印出来的一份纸质文档,从其中扣掉一个字符(比如用胶布粘掉?😂)只会在原地留下一个空位,要实现我们习惯的编辑效果实际需要把被删字符和其后面的所有字符都扣掉,再重新把新的字符打印上去 |
![]() |
40
ouqihang 18 天前 via Android
以前用 latex ,用 N 张照片构建 GIF 动画进 PDF 。有些阅读器不能正常播放,Adobe 可以。
后来有人把 CAD 立体模型放进去,像是 3 维立体图那样操作。至于 PDF 里面放代码是常规操作了,这里面有安全问题。 有些软件喜欢打开 PDF 就 OCR 。。。 |
41
nnegier 18 天前 via Android
不懂就问呀,能渲染不就能修改吗?为什么单说修改难呢
|
![]() |
42
importmeta 18 天前
需要另起炉灶再创造个 pdf.
|
43
redca 18 天前
往往免费的最贵
|
44
yulon 18 天前
那你自己做个呗,PDF 基本就是的一堆有二维坐标的小图片,你要重新去猜他的段落结构,很多明明是一行的文字,在像素上也是高低不一的
|
45
huyudong1991 18 天前 via Android
https://www.ilovepdf.com/zh-cn
每个 ip 可以免费转换几个,用完换个 ip 继续,转的非常优质(英文的文件),中文的没试过 |
46
w568w 18 天前
第一,PDF 不是文本格式而是印刷格式,印刷格式从源头上来说就没想着让你编辑方便。每一个字都可以是不同字体,可以是位图,可以是矢量,可以用坐标定位……
就像楼上说的,把主帖这段话的汉字顺序完全打乱,转换为图片,然后用绝对坐标安放到对应的位置,你觉得 PDF 编辑器要怎么为你编辑?每个字一个框吗,还是一个笔画一个框? 很多可复制文字 PDF 的原理都是辅助标记文本上去(这个矩形内有 xxx 文本),你看到的文字本身实际上都是字体渲染或者图片。这就更不可能「编辑」看到的文本了。 第二,公开的 PDF 规范实在太复杂。更何况 Adobe 还弄了很多私有规范不公开,只能在自家的阅读器里看。 |
47
bigtear 18 天前
你这个问题和之前遇到的一个产品经理一样,都低估了处理 PDF 的难度。
一方面是因为技术上确实很有难度,像楼上比喻的一样,类似将汇编逆向为高级语言的源代码; 另一方面前人做出来的不开源,这个领域每个新人来都是从零开始。 计算机现在之所以这么先进发展迅速,离不开大佬们无私的分享和奉献。 |
![]() |
48
Mandelo 18 天前
用常识想一想,要是简单价格不早就被卷下来了
|
![]() |
49
WhatTheBridgeSay 18 天前
@silvernoo #28 感谢,解决了我一直以来缺少一个全能且干净的 PDF 软件的困扰
![]() |
50
lefer 18 天前
|
![]() |
52
C02TobNClov1Dz56 18 天前
@lefer 谁让文档提供方不提供 word 源文件呢...
|
![]() |
54
loading 17 天前 ![]() 冷知识:
PDF 文件里面可以运行 Linux |
![]() |
55
loading 17 天前
|
56
sir283 17 天前
其实 op 可以自己先实现一般 free 的 pdf editor 给大伙用。
|
![]() |
57
opentrade 17 天前
不难,楼主做一个,造福人类
|
![]() |
58
vfxx 17 天前
福昕高级 PDF 编辑器 FoxitPhantomPDF 可以编辑 PDF 文件,还是很好用的。
|
59
tairan2006 17 天前
pdf 编辑非常麻烦
最便宜的还是 wps 会员 |
![]() |
60
iyaozhen 17 天前 ![]() 有点像 DNA 表达成蛋白质了。你无法还原为 DNA ,在蛋白质上猜 DNA 还是有点难
|
61
stone981023655 17 天前
恭喜你, 你要完成一个基础版本的 WPS(PDF)了.
|
![]() |
63
pythonee 16 天前
所以,我一直很佩服排版类、字体处理类软件,比如 knuth 搞的那几个
|
![]() |
64
WesleyWong 16 天前
代码操作 PDF 对于文本的修改, 就是覆盖一层白色背景,再添加文本. 要直接修改原内容太难了.
|
![]() |
65
Mr54 16 天前
自从了解过排版、编辑、修改这类的文字类软件,什么富文本,什么数学公式,我发现这群大佬是真他妈牛逼啊,这脑子不知道怎么长的。
|
66
Projection 16 天前
说几个编辑 PDF 的难点(只是根据我目前的经验总结,还没有阅读过 PDF 标准):
需要理解文档语义:页眉、页脚、段落、标题等语义信息一般不包含在 PDF 中,只有 tagged PDF 才可能有些许帮助。 就地编辑可能导致重排:PDF 是基于绝对坐标的,不像 Word 是基于流式内容。修改文字后可能破坏排版,导致需要部分或全部重新排版。当然好处就是任何 PDF 阅读器看到的内容几乎一样。 排版本身就不简单:想想 LaTeX 需要支持很多字体特性、断行算法、表格分页、浮动体支持,PDF 编辑器重新生成的内容质量不高。 字体子集化:PDF 文件常只嵌入实际使用中字体的字形,导致新增文字时字体中可能缺少对应字形,无法正确显示。 编码与文字映射复杂:PDF 中的文本内容不一定使用 Unicode 编码,而是引用字体中自定义的字形编码,编辑器需要反向映射这些编码才能恢复原始文字。还有合字或上下文替换只体现为一个字形。还有些时候 PDF 复制出来都是错的,更别说还原了。 字体布局信息不可逆:如 kerning (字偶间距)等 OpenType 特性常以坐标偏移体现在 PDF 中,这种低级信息很难还原为原始高层语义,并且嵌入的字体也不会有这个表。 不过有些编辑还是很好做的:旋转页面(修改、覆盖(非就地)编辑、手工删除页面内容(不需要重排) 建议看看 qpdf 作者写的 Text in PDF: https://medium.com/@jberkenbilt/text-in-pdf-introduction-df3dd3dfa9ea |
67
Projection 16 天前
说一个意思的,PDF 里面画不了圆,你看到的“圆”一般都是 4 段三次贝塞尔曲线
|
![]() |
68
XYZSUN 15 天前
@Projection illustrator 其实也是这么实现的
|