我一直在使用谷歌浏览器,最近我重新安装了我的浏览器.
我发现我打开的PDF链接都是直接下载的.但是,我想让它们在浏览器上查看.
我怎样才能做到这一点?
Chrome是更新版本.
对于我正在制作的应用程序,我需要使用 Pdfiumviewer 包,这反过来要求您添加 Pdfium 本身,它由 Google 提供。有一个关于如何在官方网站上添加 pdfium 的“教程”,但我一直无法破译我需要做什么。
乍一看,您似乎可以通过 de Nuget 包管理器获取 Pdfium,但很快就发现 nuget 没有将实际的 dll 添加到项目中,并且简单地将其添加为引用也不起作用。(抛出“无法添加引用”错误)。在此之后,我尝试将 Pdfium dll 移动到 bin/debug 文件夹,但仍然出现相同的错误。在做了一些研究之后,我发现 Visual Studio 不支持这个 dll,你必须使用命令行来构建/集成它。
https://pdfium.googlesource.com/pdfium/ https://github.com/pvginkel/PdfiumViewer/wiki/Building-PDFium 上提供了有关如何实现此目标的说明
但是在阅读了几天之后,我仍然不知道在谷歌提供的教程中我应该做什么和不应该做什么。
因此,我想问一下是否有人能够用简单的英语解释如何完成这些步骤,或者是否有人知道一个更用户友好的教程可以遵循。
提前谢谢了!~梅尔文
我正面临一个问题.我必须为我的Android应用程序添加PDF阅读器支持(现在我正在使用Mupdf,但我需要更改它).
我找到了PDF项目(https://code.google.com/p/pdfium/),我认为这是我需要的.
我对Android的没有太多的经验,我已经不能够建立在Android系统中,我跟着从这里构建指令https://code.google.com/p/pdfium/wiki/Build没有效果很好.
您能否提供一些提示或建议来在Android中构建此工具?
先感谢您!!!
我想从硬盘中获取 PDF 并将其转换为位图图像。
如何使用 PdfiumViewer 完成此操作?
我知道 pdfium 公开了一个 javascript API(请参阅此问题)。但我找不到如何调用这些函数。在带有渲染 PDF 的页面上,我可以看到嵌入标签,但我不知道如何处理它。
var p = document.getElementsByTagName('embed')[0]
Run Code Online (Sandbox Code Playgroud)
给了我这个:
function anonymous()
__proto__: Object
<function scope>
Run Code Online (Sandbox Code Playgroud)
并且在Chrome扩展的源代码中,pdf.js中有这个函数:
/**
* Handle a scripting message from outside the extension (typically sent by
* PDFScriptingAPI in a page containing the extension) to interact with the
* plugin.
* @param {MessageObject} message the message to handle.
*/
handleScriptingMessage: function(message) {...}
Run Code Online (Sandbox Code Playgroud)
但它只允许“selectAll”消息。
如果有人能告诉我在哪里可以阅读有关此内容的更多信息或如何使用 javascript 与 pdfium 交互,我将非常感激
我正在使用 C# 和 PDFium 库将 PDF 打印到特定标签打印机。当我通过 Chrome、Edge 或我的应用程序打印此 PDF 时,质量有问题。当我通过 Adobe Reader 或 Foxit Reader 打印时,质量正是我想要的。
这是差异的imgur图片:https ://i.imgur.com/gSnYcEE.jpg
我的应用程序是标记为“网络打印”的应用程序。正如您在图像中看到的,它的质量与浏览器的性能相匹配。尤其是右边的小文字是我最关心的。
那么,桌面 PDF 阅读器在打印时有何不同?
这是在 C# 中实际打印 PDF 的代码:
public static Boolean Print(PrintQueue printer, byte[] content, Boolean landscape)
{
using (MemoryStream stream = new MemoryStream(content))
{
PdfDocument doc = PdfDocument.Load(stream);
PrintDocument pd = GetPrintDocumentAsPDF(printer.Name, doc, landscape);
pd.Print();
return true;
}
}
private static PrintDocument GetPrintDocumentAsPDF(String printerName, PdfDocument doc, Boolean landscape)
{
PdfPrintMultiplePages multiPages = new PdfPrintMultiplePages(1, 1, landscape ? System.Windows.Forms.Orientation.Horizontal …Run Code Online (Sandbox Code Playgroud) 我想要获得与使用 Adobe Acrobat 中的将 pdf 导出为 png 相同的图像质量。
但不知怎的,这对我不起作用。如果我借助 Adobe Acrobat 工具将 pdf 导出为 png,得到的尺寸为: 宽度:11264 pix 高度:15940 pix
正如您所看到的,我为您提供了阅读 pdf 并在每页创建图像的方法。我的可能性是使用 .Render 方法,它需要int page(index) float dpiX, float dpiY, bool forPrinting
但有些怎么对保存的图像没有影响呢?
using (var document = PdfiumViewer.PdfDocument.Load(file))
{
//This int is used to get the page count for each document
int pagecount = document.PageCount;
//With the int pagecount we can create as may screenshots as there are pages in the document
for (int index = 0; index < pagecount; …Run Code Online (Sandbox Code Playgroud) 我从git hub下载了pdfiumviewer的源代码.我对该解决方案中的一个项目进行了更改.然后我将该项目添加到我的应用程序中,并将该项目的引用添加到我的应用程序的项目中.我必须取消选中PDfiumViewer项目的签名选项,因为某些dll in该项目是unsigned.我能够成功构建应用程序.但是在运行时我创建了一个PDfiumviewer项目类的对象.它给了我以下错误:
无法加载文件或程序集'PdfiumViewer,Version = 2.11.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
程序集的版本号是正确的.那么,为什么我会收到此错误?
我在 Delphi 7 中有一个应用程序,我在其中编写了下面的代码以将大型 PDF 文件从 blob 字段加载到内存,然后我加载 PDF,它可以完美地处理我已经用 1 GB 文件测试过的大文件。但是,某处存在内存泄漏,我不知道在哪里加载 10 个大文件后,它会显示消息 - 内存不足。
我不确定如何在加载内存后清除内存。
我已经测试了加载几个pdf文件,它运行良好,组件没有问题。请注意,我不想在将其加载到组件中后将其保存到文件中,我想直接在内存中进行。
请注意,我不想在磁盘上保存到文件然后加载组件,我想直接在内存中进行。
procedure TForm1.btnAbrirClick(Sender: TObject);
var
BlobStream: TStream;
Arquivo: Pointer;
begin
pdf2.Active := False;
Screen.Cursor := crHourGlass;
try
BlobStream := absqry1.CreateBlobStream(absqry1.FieldByName('binario'),bmRead);
Arquivo := AllocMem(BlobStream.Size);
BlobStream.Position := 0;
BlobStream.ReadBuffer(Arquivo^, BlobStream.Size);
pdf2.LoadDocument(Arquivo);
pdfvw1.Active := True;
finally
Screen.Cursor := crDefault;
BlobStream.Free;
Arquivo := nil;
end;
end;
Run Code Online (Sandbox Code Playgroud) 我想阅读我的PDF的所有页面并将它们保存为图像,到目前为止我所做的只是让我0 = 1首先定义的页面等等.我是否有机会定义范围?
static void Main(string[] args)
{
try
{
string path = @"C:\Users\test\Desktop\pdfToWord\";
foreach (string file in Directory.EnumerateFiles(path, "*.pdf")) {
using (var document = PdfiumViewer.PdfDocument.Load(file))
{
int i = 1;
var image = document.Render(0,300,300, true);
image.Save(@"C:\Users\test\Desktop\pdfToWord\output.png", ImageFormat.Png);
}
}
}
catch (Exception ex)
{
// handle exception here;
}
Run Code Online (Sandbox Code Playgroud) pdfium ×10
pdf ×7
c# ×6
adobe-reader ×1
android ×1
android-ndk ×1
bitmap ×1
browser ×1
delphi ×1
delphi-7 ×1
javascript ×1
manifest ×1
pdf.js ×1