2015-04-23 67 views
1

我想用C#.NET显示在WinForms的PDF文件

显示在WinForm的PDF文件我已经包含了iTextSharp的图书馆,并成功打开PDF文件,但是我得到一个byte[]回从iTextView

PdfReader reader = new PdfReader(GetURI("test.pdf")); 
reader.getPageN(1); //returns byte array 

我在这个库上找不到太多的文档,我想知道如何在实际的表单上获得PDF,无论是在图片框还是在web视图中。如何显示PDF页面?

编辑:

我不想在第三方阅读器来打开它

我不想

我希望把重点放在与iTextSharp的或解决方案上的Adobe Reader的依赖性类似的,因为我需要保护PDF,加密它,并最终改变它。

+0

iTextSharp库仅用于解析和创建PDF;它没有任何用于呈现/显示文档的功能。 –

+0

叹了口气,这个网站在几年前曾经很有用。无论如何,我会打这个论坛。 – FaddishWorm

回答

3

iTextSharp的允许你创建和操纵的PDF文件,但不提供像布拉德利·史密斯任何渲染选项上面

评论我很久以前没有类似的东西说什么我结束了正在使用Ghostscript从我的pdf和displa生成一个tiff图像那就代替。很明显,只是显示图像,所以如果你需要编辑pdf,这不适合你。

Ghostscript的是命令行唯一的,所以我认为你必须运行它是这样的:关于使用任何厂商的观众控制

 Process.Start(@"c:\gs\gs.exe", 
      String.Format("-o {0} -sDEVICE=tiffg4 -dFirstPage={1} -dLastPage={2} {3}", "tiffPages.tif", fromPage, toPage, "inputfile.pdf")); 
+1

和Ghostscript .NET包装可以在这里找到:https://github.com/jhabjan/Ghostscript.NET – HABJAN

+0

谢谢,我结束了分裂将PDF编成一系列图像并使用图片框 – FaddishWorm

2

您可以在WebBrowser控件中轻松显示PDF。添加一个webBrowser控件到你的Winform。将以下方法添加到您的表单。

private void RenderPdf(string filePath) 
{ 
    if (!string.IsNullOrWhiteSpace(filePath)) 
    { 
     webBrowser1.Navigate(@filePath); 
    } 
} 

调用此方法通过将PDF文件路径,

RenderPdf(@"PDF path"); 
+0

不会,这会提示浏览器下载PDF或在某些第三方软件中打开它,我不想这样,我需要它的形式。 – FaddishWorm

+0

看一看:http://stackoverflow.com/q/4504442/952310 –

1

这个问题的this

我找到了答案副本:

我认为最简单的方法是使用Adobe PDF阅读器COM Component 右键点击你的工具箱&选择“选择项目”的形式&上选择“COM 组件”选项卡中选择“的Adobe PDF阅读器” 然后单击确定将&下降 控制修改“源”属性到PDF文件 你想读我希望这有助于

+0

为什么要投这个? – Thealon

+0

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 – karlingen

+0

@karlingen在编辑之前,他确实回答了他的问题。 – Thealon

0

如果商业图书馆是一个选项,请尝试Amyuni PDF Creator .Net。您将能够在表单中显示您的PDF文档,修改文档或对其进行加密。您将不需要依赖任何其他程序来安装,或任何外部进程。

正如其他答案和评论所述,iText不是用来显示PDF文档的。

声明:我为Amyuni Technologies工作。