- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我构建了一个 WinForms 应用程序,它使用 PDFium 来打印 PDF 文档。我从 NuGet 安装了 PDFium,它在我的项目中创建了两个子文件夹 - x86 和 x64 - 正如预期的那样,每个子文件夹都包含相关版本的 pdfium.dll。我的应用程序的目标平台设置为任何 CPU。
当我在我的 Windows 10 64 位机器上调试运行应用程序时,它运行良好。但是,当我发布应用程序并在同一台计算机上真正安装它时,PDFium 抛出异常:
System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
经过一些研究后,我将应用程序的目标平台更改为 x86,并从我的项目中删除了 x64 子文件夹。应用发布后运行正常,问题解决。
但是,我想知道是否有一种方法可以让我的应用程序工作,以便它支持 x86 和 x64,使用适合目标计算机的 PDFium 版本。如果它能在可以支持它的机器上安装 64 位版本就好了(这是我们组织中的大多数机器,但我觉得如果我必须选择一个或另一个,以确保兼容性)。
最佳答案
我用过这种方法。主要思想是确定程序是在 32 位还是 64 位环境中运行。这是通过检查指针的大小来完成的。根据此检查的结果,库 pdfium.dll
从应用程序路径的 x86
或 x64
子目录动态加载。
private static bool TryLoadNativeLibrary(string path)
{
if (path == null)
return false;
path = Path.Combine(path, IntPtr.Size == 4 ? "x86" : "x64");
path = Path.Combine(path, "pdfium.dll");
return File.Exists(path) && LoadLibrary(path) != IntPtr.Zero;
}
[DllImport("kernel32", SetLastError = true, CharSet = CharSet.Ansi)]
private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
关于c# - 允许 PDFium 支持 x86 和 x64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43046641/
我使用下面的代码片段将 pdf 页面提取为图像,但是在更改位图的大小时,图像中的文本内容不清晰,很模糊您能否提出提高渲染图像质量的解决方案。 var data = bitmapImage.LockBi
我目前正在尝试构建一个能够将 PDF 文件转换为图像的 C++ 应用程序。 我想用 pdfium去做这个。 所以我按照 wiki 中的说明构建了 pdfium,并在我的 cmake 项目中复制了 he
我目前正在为我的雇主开发一个使用 PDF 呈现功能的 C# 应用程序。 Pdfium.Net 在显示 PDF 方面表现出色,但该应用程序还必须能够打印它们。有人知道通过此 API 打印当前 PDF 文
我想使用 PDFium 的内置 JavaScript。我知道 PDFium 对 JavaScript 的支持有限,但我看过帖子说它确实有 a few available commands . 这就是我
我遇到了一个问题。我必须向我的 Android 应用程序添加 PDF 阅读器支持(现在我正在使用 Mupdf,但我需要更改它)。 我找到了 PDFium 项目 ( https://code.googl
我正在尝试为 pdfium 创建一个 dll。我正在使用 Visual Studio 2013 (C++)我已尝试按照 https://github.com/pvginkel/PdfiumViewer
我正在尝试在 linux(debian 64 位)中使用 pdfium 库。我设法(最终)编译了 pdfium 的 _x64 版本,测试程序似乎可以正常工作。但是,我似乎无法在单独的项目中使用这些库。
我正在使用 PDfiumViewer winform 控件来显示 pdf。并且,我在pdf中添加了一些注释,但这些注释没有显示在pdfviewer控件中。那么,如何实现这一点? 最佳答案 在 PDFi
我正在尝试为 Android 构建 PDFium。我正在使用 Debian stretch。 我执行了以下命令: > mkdir build > cd build > mkdir build/sour
对于我正在制作的应用程序,我需要使用 Pdfiumviewer 包,这反过来又需要您添加 Pdfium 本身,它由 Google 提供。官方网站上有一个关于如何添加 pdfium 的“教程”,但我无法
可以在 android 项目上使用 pdfium dll 吗?有一种方法可以包装这个 dll 以在 android 中使用它吗?最好的解决方案是什么?我需要一种包装 pdfium 的方法,以便在 an
我构建了一个 WinForms 应用程序,它使用 PDFium 来打印 PDF 文档。我从 NuGet 安装了 PDFium,它在我的项目中创建了两个子文件夹 - x86 和 x64 - 正如预期的那
众所周知,pdfium 现在是 chrome 的一部分,这是一个很好的 pdf 渲染器,但我遇到了一些问题。 代码如下,默认页数为12,由#page=12赋值,当打开该页时,可以跳转或导航到其他页,但
任何人都可以建议如何使用 chrome pdfium 将 HTML 转换为 PDF。 因为,我尝试了 pdf.js 和其他一些,但它没有给我一个正确的结果。 我认为 chrome pdfium 可以正
我是一名优秀的程序员,十分优秀!