AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[pdf](coding)

Martin Hope
yannis
Asked: 2025-04-28 20:30:42 +0800 CST

通过 pypdf 将 XMP 数据添加到 PDF 文件

  • 5

我需要将 XMP 数据添加到通过 pypdf 获取的 PDF 文件中。在关于如何通过 pypdf 读取/写入 PDF 文件的 XML 元数据的问题上,KyleBrooks 回答说这是不可能的。但那是 2009 年的事了。现在也许可以使用最新版本的 pypdf 了?

如果没有,您是否知道将 XMP XML 文件嵌入 PDF 文档的其他非商业方法?

pdf
  • 1 个回答
  • 25 Views
Martin Hope
grsousajunior
Asked: 2025-04-25 22:53:12 +0800 CST

使用某些终端反转时,Gnuplot 颜色框显示为空白

  • 6

gnuplot我在使用(版本 6.0 补丁级别 1,Microsoft Windows 版本 10.0.19045.5737)生成绘图时遇到了一个奇怪的问题 。我需要将绘图中的colorbox值反转,即颜色渐变应该从底部的高值到顶部的低值。

我注意到,当使用某些终端时,colorbox显示完全空白或白色,没有预期的颜色渐变:

  1. wxt, 成功
  2. emf, 成功
  3. pngcairo, 成功
  4. svg, 成功
  5. pdfcairo, 失败
  6. epscairo, 失败

我已附上示例图片:

pngcairo终端输出

pngcairo 终端的输出

pdfcairo终端输出

pdfcairo 终端的输出

wxt使用“将图导出到文件”选项从交互式窗口输出为 pdf 。

来自 wxt 交互窗口的 pdf

这是我正在使用的脚本的简化版本:

reset session
set encoding utf8

#set terminal wxt size 800,400 font "Arial,9"

#set terminal pngcairo size 800,400 font "Arial,9"
#set output "diagram.png"

set terminal pdfcairo size 10,5 in font "Arial,14"
set output "diagram.pdf"

set tics out nomirror
unset key
set style circle radius graph 0.01
set style fill transparent solid 1 border lc ls -1
set palette viridis maxcolors 25
set xrange [400:450]
set yrange [100:600]
set xlabel "Temperature/°C"
set ylabel "Index"
set cblabel "Depth (m)"
set cbtics offset -1,0

set multiplot layout 1,2

set title "normal colorbox"
plot "data.txt" u 2:3:1 w circle lc palette

set colorbox invert
set title "inverted colorbox"
replot

unset multiplot
unset output

看起来data.txt是这样的:

Depth   Temp    Index
201.05  427.34  251.70
205.24  431.39  296.30
209.24  414.27  185.66
211.89  432.81  140.98
215.54  413.30  299.13
217.17  424.50  272.27
221.00  426.93  184.91
221.50  420.06  241.14
222.95  420.16  467.74
223.60  410.67  196.70
226.39  416.30  166.96
228.87  430.30  437.81
232.22  415.00  343.18
232.23  415.76  494.67
235.17  410.02  224.60
238.31  429.06  302.89
238.37  414.77  367.09
238.49  421.26  195.13
239.36  414.16  161.46
241.46  418.85  263.24
242.76  431.97  378.32
243.17  420.91  154.06
246.77  421.16  135.39
247.30  414.63  411.32
248.97  410.22  146.30

我的脚本/数据有问题或者这是一个错误?

pdf
  • 2 个回答
  • 51 Views
Martin Hope
gettalong
Asked: 2025-04-08 05:50:42 +0800 CST

仅在 macOS 预览版中出现 /ToUnicode 映射问题

  • 5

我遇到了一个奇怪的问题,PDF 及其包含的/ToUnicodeCMap 只影响 macOS 预览版,其他测试过的查看器都运行正常。问题是我不知道是包含的/ToUnicodeCMap 有问题还是预览版有问题。

这是有问题的 PDF:https://github.com/user-attachments/files/19538203/example.pdf以及出现此问题的Github 问题。

如果在 macOS 预览版中打开该 PDF,选中并复制文本,则“Hello from HexaPD”之后的所有内容都是错误的。其他查看者可以正常复制整个文本。

当前状态(已编辑):

  • 生成 PDF 的库 HexaPDF 使用了一种优化方法\r,避免创建包含 ASCII 字符、(和)的字符代码\。原因是,在序列化为 PDF 文字字符串时,需要对这些字符进行转义。

  • 如果关闭此优化,则生成的文件(参见https://github.com/user-attachments/files/19575820/example.pdf)可以在 macOS Preview 中完美运行(即复制和粘贴有效)。

  • 完全删除/ToUnicodeCMap 会导致文本无法复制。这意味着 macOS 预览版确实使用了此 CMap,并且它很可能是罪魁祸首。

  • 添加虚拟条目<0000><0000>不起作用。

  • <000D><0044>向CMap添加虚拟条目/ToUnicode不起作用。

  • 如果字符代码不是从 1 开始而是从 14 开始,则会导致前 13 个字符无效,即使情况变得更糟。

  • 在阅读了 PDF 规范和“5014 Adob​​e CMap 和 CIDFont 文件规范”的各个部分后,我认为/ToUnicode上面两个链接文件中的 CMap 是正确的。

/ToUnicode如果您能提供任何关于生成的CMap 是否无效或是否是 macOS Preview 的错误见解,我们将不胜感激!

pdf
  • 1 个回答
  • 53 Views
Martin Hope
goldfinch
Asked: 2025-03-07 19:37:33 +0800 CST

错误 1010 无法打开文件 RAS papercept

  • 5

在 RAS-Papercept 中测试 pdf(由 pdflatex 生成)并将其提交给会议之前,我遇到了错误:“错误 1010 无法打开文件”。RAS -Papercept常见问题解答部分的答案没有帮助。

我有许多 PDF 格式的图像,以保留图中图表/文本的分辨率。所有 PDF 图像均从 draw.io/app.diagrams.net 导出

如果我使用 PNG 文件,错误就会消失。但是,我想使用 PDF 图像。任何帮助都将不胜感激。

System: Ubuntu 18.04
Pdflatex: pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)

pdfinfo 的输出如下:

$ pdfinfo 我的图像.pdf

Producer:       cairo 1.15.10
CreationDate:   Fri Feb 21 11:04:58 2025 CET    
Tagged:         no
UserProperties: no    
Suspects:       no    
Form:           none    
JavaScript:     no    
Pages:          1    
Encrypted:      no    
Page size:      268.736 x 165.13 pts    
Page rot:       0    
File size:      5812 bytes    
Optimized:      no    
PDF version:    1.4

$ pdfinfo my_tested_pdf.pdf

Creator:        TeX
Producer:       pdfTeX-1.40.18
CreationDate:   Fri Mar  7 11:58:05 2025 CET
ModDate:        Fri Mar  7 11:58:05 2025 CET
Tagged:         no
UserProperties: no
Suspects:       no
Form:           AcroForm
JavaScript:     no
Pages:          7
Encrypted:      no
Page size:      612 x 792 pts (letter)
Page rot:       0
File size:      1212342 bytes
Optimized:      no
PDF version:    1.5
pdf
  • 1 个回答
  • 33 Views
Martin Hope
rabudde
Asked: 2024-12-30 04:43:16 +0800 CST

将参数从 GhostScript CLI 传递到 PostScript

  • 6

我正在使用 Ghostscript 将 PDF 转换为 PDF/A 文件,效果很好。我想使用该-dSAFER选项,强制我在文件中对 ICCProfile 使用绝对路径名PDFA_def.ps:

% in the current directory unless the user modifies the corresponding line below.

% Define entries in the document Info dictionary :
[ /Title (Title)       % Customise
  /DOCINFO pdfmark

% Define an ICC profile :
/ICCProfile (/var/www/myproject/gs/sRGB2014.icc) % Customise
def

[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark

使用以下命令,我可以使用 GhostScript 转换 PDF:

gs --permit-file-read=/var/www/myproject/gs/ \
    -dPDFA=3 \
    -dBATCH \
    -dNOPAUSE \
    -dSAFER \
    -sColorConversionStrategy=RGB \
    -sDEVICE=pdfwrite \
    -sOutputFile=output.pdf \
    /var/www/myproject/gs/PDFA_def.ps \
    input.pdf

因为这个项目在生产时被转移到不同的文件夹中,所以我正在寻找一种使路径名可配置的方法。因为-dSAFER我们必须使用绝对路径名,我想。顺便说一下,我是一名 PHP 开发人员,但我对 PostScript 一无所知。

有没有办法将路径传递/var/www/myproject/gs/到 PostScript 文件中PDFA_def.ps(这对我来说就足够了)。

pdf
  • 1 个回答
  • 30 Views
Martin Hope
user2609605
Asked: 2024-12-28 08:48:31 +0800 CST

PDF 中的文档尾部 ID:为什么它由两个字符串组成以及如何通过命令行工具提取它

  • 6

尽管有工具可以访问 PDF 元数据,例如pdfinfo,但我没有找到获取预告片 ID 的正确方法。相反,我使用编辑器并搜索... 所以我的第一个问题是,是否有命令行工具可以为我完成这项工作。

尽管如此,我发现并且感到疑惑:该 ID 有两个部分,预告片如下所示:

trailer << /Info 2 0 R /Root 1 0 R /Size 3656 
/ID [<2442556d3492442c8e034f4bf45c46d4><31415926535897932384626433832795>] >>

我对这两个部分 ID 的用途感到疑惑;PDF 规范对此没有说明。在我用 latex 创建的 PDF 中,这两个部分是一致的。

我还想知道为什么有些工具似乎喜欢qpdf写小写字母,而其他工具(如 latex 编译器)似乎使用大写字母。这使得相等性测试变得困难。

即使调用,qpdf结果SOURCE_DATE_EPOCH=hex number也不会改变。...这与乳胶编译器不同。

pdf
  • 2 个回答
  • 35 Views
Martin Hope
rabudde
Asked: 2024-12-07 20:06:35 +0800 CST

SVG 透明度破坏了 PDF/A 兼容性

  • 6

目前,我正在使用 mPDF 在 PHP 中创建 PDF/A 文件。SVG 默认具有透明背景。但这会破坏与 PDF/A 的兼容性。当使用 veraPDF 验证此类 PDF 文件时,我收到一条错误消息,提示“具有值为 Transparency 的 S 键的 Group 对象不应包含在表单 XObject 中。具有值为 Transparency 的 S 键的 Group 对象不应包含在页面字典中”

在此处输入图片描述

我尝试向 SVG 添加一个矩形(如此处所述),但没有成功。有没有解决方案可以删除此透明度,但仍能使用 SVG?

编辑:我使用简单的 FontAwesome 图标作为 SVG,例如地球仪。查看 SVG 代码,我找不到任何不透明度或透明度样式。

编辑2:我上传了一个SVG示例和一个用 mPDF 创建的PDF文件。

pdf
  • 1 个回答
  • 50 Views
Martin Hope
superkuzet
Asked: 2024-08-01 19:05:47 +0800 CST

使用旧版 iText-2.1.7 将符号添加到 PDF

  • 5

我正在开发一个使用旧版 iText-2.1.7 库的遗留项目。我才刚刚开始弄清楚,而且我暂时不会升级到更新的版本,所以我需要有关此版本的帮助。我需要将签名添加到 pdf,这是我的代码:

def postProcessPdf(pdf: Array[Byte], os: OutputStream): Unit = {
 val reader = new PdfReader(pdf)
 Security.addProvider(new KalkanProvider)
 val stamper = PdfStamper.createSignature(reader, os, '\u0000')
 val appearance = stamper.getSignatureAppearance
 val signDate = Calendar.getInstance
 val pdfSignature = new PdfSignature(PdfName.ADOBE_PPKLITE, PdfName.ADBE_PKCS7_DETACHED)
 pdfSignature.setDate(new PdfDate(signDate))
 pdfSignature.setCert(CryptUtils.cert.getEncoded)
 appearance.setCryptoDictionary(pdfSignature)
 appearance.setCrypto(null, CryptUtils.chain, null, PdfSignatureAppearance.WINCER_SIGNED)
 appearance.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED)
 val estimatedSize = 8192
 val exc = new HashMap[PdfName, Int]()
 exc.put(PdfName.CONTENTS, estimatedSize * 2 + 2)
 appearance.preClose(exc)
 val data = appearance.getRangeStream()
 val sgn = new PdfPKCS7(null, CryptUtils.chain, null, "SHA256", null, false)
 val digest = MessageDigest.getInstance("SHA256","KALKAN")
 val dataBytes = IOUtils.toByteArray(data)
 digest.update(dataBytes)
 val appeareanceHash = digest.digest()
 val hashToSign = sgn.getAuthenticatedAttributeBytes(appeareanceHash, appearance.getSignDate(), null)
 val signature = Signature.getInstance("SHA256withRSA","KALKAN")
 signature.initSign(CryptUtils.privateKey)
 signature.update(hashToSign)
 val signedHash = signature.sign()
 sgn.setExternalDigest(signedHash,null,"RSA")
 val encodedPKCS7 = sgn.getEncodedPKCS7(signedHash, appearance.getSignDate())
 val paddedSig = new Array[Byte](estimatedSize)
 System.arraycopy(encodedPKCS7, 0, paddedSig, 0, encodedPKCS7.length)
 val dic = new PdfDictionary()
 dic.put(PdfName.CONTENTS, new PdfString(paddedSig).setHexWriting(true))
 appearance.close(dic)
}

Adobe Acrobat Reader 中的结果: 图像 错误:文档自签名以来已被更改或损坏。这是什么意思?我该怎么办?提前谢谢您。PDF 文件:链接

pdf
  • 1 个回答
  • 21 Views
Martin Hope
chiku
Asked: 2024-04-24 20:50:00 +0800 CST

Adobe DRM 无法获取图像 pdf 的 acsm 文件

  • 6

我有一个示例图像 pdf,我想从 adobe 获取 drm'ed,对于普通 pdf adobe drm 效果非常好,请找到链接https://www.dropbox.com/scl/fi/cguwslagkh0mol4q5oh0m/sample_image_pdf.pdf?rlkey =s6vrnlrc9ac89jjnfd0w32hyn&st=dlj16950&dl=0 示例图像 pdf。请帮助我如何解决这个问题。

问候克里斯

pdf
  • 1 个回答
  • 23 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve