问题标签 [pdfium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
84 浏览

windows - 使用库 pdfium 构建小型 c 程序时出错

我正在尝试使用 pdfium 构建 init.c,以测试是否有效。我在桌面上的 dir、文件 init.c、pdfium.lib 和带有 pdfium 头文件的公共目录。init.c 代码是

在 Windows cmd 类型上打开...

然后尝试构建...

我正在犯错误...

g++:错误:$PDF_LIBS:没有这样的文件或目录

知道为什么吗?我已接受https://pdfium.googlesource.com/pdfium/+/master/docs/getting-started.md的指示 谢谢吉姆

0 投票
0 回答
199 浏览

windows - pdfium build 上没有 build/config/win/visual_studio_version.gni:27:7 的错误

在 gn args out\debug 我有错误

//build/config/win/visual_studio_version.gni:27:7 处的错误:脚本返回非零退出代码。exec_script(“../../vs_toolchain.py”,[“get_toolchain_dir”],“范围”)

我删除了 Visual Studio,我想用 clang-cl 构建 pdfium。我不知道如何,我的电脑中没有 MSVS。所有这一切的目标是能够使用 clang-cl 在 windows 中使用 wxWidgets、CodeBlocks 和 pdfium 构建我的 linux 项目。谢谢你。吉姆

0 投票
1 回答
1112 浏览

.net - 如何减小打印假脱机文件大小

我有一个大小为 13.1MB 的 pdf 文件。使用 Acrobat Reader DC 打印时,假脱机文件的大小为 105MB。但是,当我尝试使用 PdfiumViewer 以编程方式打印时,假脱机文件大小超过 500MB,最终由于打印机内存不足导致程序崩溃。

代码如下

我知道 pdf 文件需要转换为打印机可以理解的某种数据格式,并且数据的大小因应用程序而异。我的问题是,Acrobat 如何减小假脱机文件的大小?在将文件转换为打印机可以理解的数据格式之前,它是否会预处理 pdf 文件(压缩?)?

我正在尝试获取一些线索,并希望可以像 Acrobat 一样减少假脱机文件的大小。

0 投票
1 回答
322 浏览

delphi - 读取 blob 字段的问题 - 内存不足

我在 Delphi 7 中有一个应用程序,我在其中编写了下面的代码,将大型 PDF 文件从 blob 字段加载到内存,然后加载 PDF,它适用于我已经用 1 GB 文件测试过的大文件。但是,某处存在内存泄漏,我不知道在加载 10 个大文件后,它会在哪里显示消息 - 内存不足。

我不确定如何在加载内存后清除内存。

我已经测试了加载几个 pdf 文件,它运行良好,组件没有问题。请注意,我不想在将其加载到组件中后将其保存到文件中,我想直接在内存中进行。

请注意,我不想保存到磁盘上的文件然后加载组件,我想直接在内存中执行。

0 投票
1 回答
181 浏览

c++ - Pdfium 保存 PDF 文档增量

FPDF_SaveAsCopy 函数中的 FPDF_INCREMENTAL=1 标志不起作用。生成不正确的 PDF 文档。

使用 0(零)而不是 FPDF_INCREMENTAL,它可以工作。但我想增量保存,使用 0 不会增量保存。

如何使 FPDF_INCREMENTAL 标志起作用?我需要启用什么吗?

0 投票
1 回答
130 浏览

windows - 如何解决在 Windows 10 上链接 pdfium

我在 C:\repo\pdfium\out\debug\obj\test 目录中有 Windows 上的 main.cpp。Pdfium.lib 位于 obj 目录中。

pdfium.lib 是用 GCC 构建的(is_lang=false)

使用命令我正在生产 main.o

g++.exe -std=c++11 -g -I........\public -c C:\repo\pdfium\out\debug\obj\test\main.cpp -o obj\Debug\主要的.o

使用下面的命令,我正在尝试链接 pdfium.lib

但我正在服用...

我已经尝试了很多次,但没有在 Windows 10 上进行链接。任何建议都是有效的。

谢谢

吉姆

0 投票
1 回答
244 浏览

android - 修复旧 Android 版本的 PDFium 崩溃或包含自己的库

我有一个使用该标准PdfRenderer呈现 PDF 的 Android 应用程序。到目前为止它工作得很好,我设法摆脱了应用程序中的大部分错误。

我不知道如何摆脱的唯一错误是:

它发生在几种变体中(不仅是 FPDF_CloseDocument),并且在每日会话中产生高达 4% 的崩溃。在各种设备上从 5 到 8 的 Android 版本上都会遇到此问题。

经过一番搜索,该PDFium库(基于该库PdfRenderer)似乎在早期版本中有一些错误。这就是问题在 Android 9 和 10 上没有出现的原因。

所以我的实际任务是摆脱 11 次 SIGSEGV 崩溃

在这里,我有以下想法:

  1. 在我的应用程序中包含最新版本的 PDFium。目前 libpdfium.so 包含在 Android 操作系统中。我可以将最终更正的库包含到我的应用程序中并使用它吗?在哪里可以找到 libpdfium.so 以及如何在应用程序中使用它?

  2. 使用替代的 PDF 渲染器。我需要以所需的缩放和分辨率呈现 PDF 页面的一部分,并且我需要一个非常宽松的许可证,例如 MIT 或 Apache,所以我不需要开源我的项目。我没有找到任何合适的,例如MuPDF需要开源整个项目,PSPDFKit是完全专有的。

摆脱 11 次 SIGSEGV 崩溃有什么更好的方法?

0 投票
0 回答
34 浏览

cmake - C:/wxPDFView-1.0/samples/simple 错误构建

使用 CMake,我可以使用 CodeBlocks(20) 和 MinW64 编译器构建 libwxPDFView.a 库但是构建 C:/wxPDFView-1.0/samples/simple 我有问题。Pdfium 库位于 c:\repo\Libraries\pdfium\lib\lib 和 bin 谢谢。吉姆

[ 87%] 构建目标 wxPDFView C:/PROGRA~1/CODEBL~1/MinGW/bin/mingw32-make.exe -f CMakeFiles\wxPDFViewSimpleSample.dir\build.make CMakeFiles/wxPDFViewSimpleSample.dir/depend mingw32-make.exe [3]:进入目录'C:/wxPDFView-1.0/samples/simple/out' "C:\Program Files\CMake\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\wxPDFView-1.0\samples \simple C:\wxPDFView-1.0\samples\simple C:\wxPDFView-1.0\samples\simple\out C:\wxPDFView-1.0\samples\simple\out C:\wxPDFView-1.0\samples\simple\out\CMakeFiles \wxPDFViewSimpleSample.dir\DependInfo.cmake --color= Dependee "C:\wxPDFView-1.0\samples\simple\out\CMakeFiles\wxPDFViewSimpleSample.dir\DependInfo.cmake" 比依赖者 "C:/wxPDFView-1.0/samples" 更新/simple/out/CMakeFiles/wxPDFViewSimpleSample.dir/depend.internal”。依赖者“C:/wxPDFView-1. 0\samples\simple\Simple.cpp mingw32-make.exe[3]: *** 没有规则来制作目标 'pdfium-NOTFOUND','wxPDFViewSimpleSample.exe' 需要。停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) cpp mingw32-make.exe[3]: *** 没有规则来制作目标 'pdfium-NOTFOUND','wxPDFViewSimpleSample.exe' 需要。停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) cpp mingw32-make.exe[3]: *** 没有规则来制作目标 'pdfium-NOTFOUND','wxPDFViewSimpleSample.exe' 需要。停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) *** 没有规则来制作“wxPDFViewSimpleSample.exe”所需的目标“pdfium-NOTFOUND”。停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) *** 没有规则来制作“wxPDFViewSimpleSample.exe”所需的目标“pdfium-NOTFOUND”。停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) 停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒) 停止。mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:114: CMakeFiles/wxPDFViewSimpleSample.dir/all] 错误 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:121: CMakeFiles/ wxPDFViewSimpleSample.dir/rule] 错误 2 mingw32-make.exe: *** [C:/wxPDFView-1.0/samples/simple/out/Makefile:136: wxPDFViewSimpleSample] 错误 2 mingw32-make.exe[3]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[2]: 离开目录 'C:/wxPDFView-1.0/samples/simple/out' mingw32-make.exe[1]: 离开目录'C:/wxPDFView-1.0/samples/simple/out' 进程以状态 2 终止(1 分钟,43 秒)3 个错误,0 个警告(1 分钟, 43 秒)

0 投票
2 回答
138 浏览

c - 在 Cython 中包装 C 代码时如何处理调用约定?

我正在尝试将 PDFium 与 Cython 接口并遇到这些定义/签名:

我只是习惯了简单的函数声明

如何在 Cython 中包装包含调用约定的签名?

0 投票
0 回答
191 浏览

javascript - 获取、自定义和重新编译 Chrome/MS-Edge 中存在的 PDFium 扩展的源代码

我知道 Chrome 和 MS-Edge 中的 Pdf-viewer 基本上是一个基于 PDFium 的开源扩展。我已经阅读了人们尝试自定义内置 pdf 查看器的互联网尝试,例如更改背景颜色以进行友好的夜间阅读、尝试向 UI 添加新按钮、新的上下文菜单等。他们中的大多数都有类似的方法:随时修改现有插件并使更改持久化。例如,注入 javascript 代码来达到他们的目的。给出的经常性解决方案是“为什么要打扰?去使用 Pdf.js”,但这意味着从头开始创建 UI,因此对于大多数人(包括我)来说,这不是一个选择。

我不知道是否可以获取 Chrome 或 Edge 使用的扩展程序的原始源代码(它是开源的,对吗?所以...),对其进行自定义,重新编译并使其在 Chrome/MS 中默认-边缘。顺便说一句,我的目标是 MS-Edge,因为我一直在用 C++ 编写其他需要集成的例程。

在此处输入图像描述

先感谢您!