问题标签 [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.
c# - 如何将 dll 文件添加到 UWP 项目中
我正在为 Pdfium 库(pdfium.dll)构建一个 UWP 查看器。pdfium.dll 是一个 C++ 类库。在我的 Visual Studio 解决方案中,我有两个 UWP 项目。First Project(PdfiumViewer) 是一个 UWP 类库,它从 pdfium.dll 导入函数并创建用户控件。例如:
第二个项目(PdfiumViewer.Demo)是一个 UWP 空白应用程序,我在这里引用了第一个项目,以便我可以在这个项目中使用它的用户控件。我将 pdfium.dll 包含在我的第二个项目的 bin 文件夹中。但是当我运行程序时,我得到一个异常说“无法加载 pdfium.dll”。
为 .Net Windows Forms 和 WPF 应用程序开发了一个现有的类似查看器。
我试图通过右键单击参考 - >“添加参考”来添加 pdfium.dll 作为参考。在所有这些情况下(.Net WinForm、.Net WPF、UWP),添加它给了我一个错误。(错误:无法添加对 ....\pdfium.dll 的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件)
我以类似的方式(添加到 bin 文件夹)将 pdfium.dll 添加到 .Net WinForm 和 .Net WPF 中并运行它们。两种类型的应用程序查看器都运行良好。
我的问题: 由于 UWP 应用程序在沙箱中运行,是否有特殊位置可以添加此 dll(pdfium.dll)?
注意:我尝试将文件添加到不同的位置。(在 APPX 文件夹内、在 bin\Debug 文件夹内、在 bin\Debug\x64 内等)
c# - 加载非托管 dll 而不将其写入磁盘
我们使用 Syncfusion.PdfViewer.WPF 来显示 PDF。从版本 16.1.0.24 开始,它使用 Pdfium 进行渲染。它在 dll 中嵌入了非托管的 pdfium.dll,并在运行时将其解压缩到应用程序文件夹。这在安装应用程序时不起作用,因为用户没有对 c:/Program Files/ 的写入权限。
有没有办法在不先将它们写入磁盘的情况下加载这些 dll?
从 dll 中提取它们并使用 Assembly.Load 加载不起作用,因为它是非托管 dll。
c# - 使用 PdfiumViewer 更改 HardMarginX 以打印 PDF 文件
我使用 pdfiumViewer 打印由 itextshape 创建的标签,我在 stackoverflow 中找到了此代码,它适用于 A4 纸,但对于像我的标签这样的自定义纸张,问题将会发生。这是代码:
问题是 HardMarginX 总是 20。它是只读属性,所以我无法更改。所以当我打印时,纸张总是留有一些空间。所以无论如何我可以解决这个问题。感谢阅读
asp.net - 内置 Chrome PDF 查看器不会为 ASP.NET Web App 中经过身份验证的用户完全加载大型 PDF 文件
内置 Chrome PDF 查看器不会为经过身份验证的用户完全加载大型 PDF 文件。
在我的环境中重现的步骤:
- 在 Visual Studio 2019 中创建一个具有身份验证的新
WebForms
项目Individual User Accounts
- 在
solution explorer
创建一些文件夹,例如MyPDFs
并放入一些大的pdf 文件中。 使用以下命令保护此文件夹
web.config
:<location path="MyPDFs"> <system.web> <authorization> <deny users="?" /> </authorization> </system.web> </location>
并为此测试目的设置
runAllManagedModulesForAllRequests
为true
:<modules runAllManagedModulesForAllRequests="true">
使用 IISExpress 运行此站点并导航到
~/MyPDFs/A17_FlightPlan.pdf
在我的情况下https://localhost:44302/pdfs/A17_FlightPlan.pdf
当您从 中删除授权规则
web.config
或将 PDF 文件放到其他位置时,它会正确加载我可以在生产中重现相同的行为 - 完整的 IIS
其他浏览器也能正常工作:FireFox、EDGE 甚至 Chrome,替换为 Adobe Acrobat 阅读器扩展的内置 PDF 查看器
问题可能出在哪里?标头正常吗?
c++ - static_assert 与带有自定义分配器的 std::vector 一起失败
我正在尝试使用 MSVC 141 编译从铬源代码中获取的 PDFium。该代码是自定义分配器。可以看到自定义分配器可以用wchar_t实例化没问题。wchar_t 显然是算术。但是,将其传递到向量中会使静态断言失败。下面的代码给出了一个静态断言,我没想到:
这超出了我的能力范围。到目前为止,我的猜测是 MSVC 编译器的工作方式与 GCC 不同,或者我缺少编译器选项。我已经尝试过 MSVC 141 和 142。C++11 到 c++17。谁能向我解释为什么这不能编译?
c++ - 如何使用 PDFIUM c++ 保存 pdf
是否有任何示例显示如何使用FPDF_SaveAsCopy()
保存 PDF 文档的功能?我在任何地方都找不到任何例子!
pdf-generation - 向 pdf 文档添加注释时 FPDFAnnot_SetRect 和 FPDFAnnot_AppendAttachmentPoints 之间的区别
我正在使用 pdfium 向 pdf 文件添加注释。我使用 Notepad++ 打开了 pdf 文件并查看了它的对象。注释对象存在于 Page 对象中,如下所示,
我使用以下代码将矩形和附加点添加到注释中。
据我了解,附加点设置为我们希望它位于的突出显示注释的位置。但我不明白为此注释设置 Rect 的目的。
有人可以告诉使用 FPDFAnnot_SetRect 函数的原因吗?
另一件事,
emscripten - 如何使用 emscripten 构建 PDFium
我想知道是否有人可以引导我完成使用 emscripten 构建 PDFium 以生成 Web 组装模块的步骤。我可以看到 PDFium 似乎支持基于此票证的此类构建:https ://bugs.chromium.org/p/chromium/issues/detail?id=804907
我似乎找不到有关执行此构建的文档。
c# - 不使用 dispose 方法释放非托管代码的内存
我在使用非托管代码的 C# 项目中安装了 NuGet 包。我创建了一个密封类的对象。它没有在类中定义的 dispose 方法。如何释放非托管内存?我可以看到我的内存使用量随着时间的推移而增加,并且我的应用程序被踢出。我的代码是
我试过((IDisposable)bitmap).Dispose();
它不起作用。
这里 PDFiumBitmap 是一个非托管对象。我想释放记忆。PDFiumBitmap 给了我一个句柄。看起来像一个指针 截图