C# 为PDF渲染和分析应用程序选择跨平台库(最好使用C)

C# 为PDF渲染和分析应用程序选择跨平台库(最好使用C),c#,silverlight,pdf,mono,cross-platform,C#,Silverlight,Pdf,Mono,Cross Platform,我计划写一个应用程序,可以打开和显示PDF文档,并在PDF中的矢量图形元素上执行OCR。用户必须能够选择文档的区域,我需要在文档上绘制实时注释。我不需要更改或保存文档本身 我对C和WPF有丰富的经验;我已经编写了一个类似的应用程序,它在XPS/XAML文档而不是PDF上执行上述操作。但是,该应用程序仅在Windows上运行,必须先将PDF文档转换为XPS 我做了很多研究,有很多很多选择,没有一个是显而易见的选择。有许多库可以打开PDF或创建PDF,但大多数库似乎不允许您访问单个矢量图形元素,其格

我计划写一个应用程序,可以打开和显示PDF文档,并在PDF中的矢量图形元素上执行OCR。用户必须能够选择文档的区域,我需要在文档上绘制实时注释。我不需要更改或保存文档本身

我对C和WPF有丰富的经验;我已经编写了一个类似的应用程序,它在XPS/XAML文档而不是PDF上执行上述操作。但是,该应用程序仅在Windows上运行,必须先将PDF文档转换为XPS

我做了很多研究,有很多很多选择,没有一个是显而易见的选择。有许多库可以打开PDF或创建PDF,但大多数库似乎不允许您访问单个矢量图形元素,其格式允许您在屏幕上绘制/操作它们,类似于我可以使用从XPS文档中提取的WPF图形元素

我熟悉.Net和C,包括.Net 2 GDI+图形,我非常渴望坚持我所知道的。我还使用EmguCV进行图像识别,可以在Mono或.Net中编译。因此,我看到Silverlight运行独立或单声道选项,这两种选项都应该在PC和Mac上运行

图形和数字运算的性能都是一个重要的考虑因素,尽管我同样对快速启动和运行这一功能感兴趣

有没有人有过打开PDF、提取矢量图形元素(可能是SVG)并在Mono应用程序中呈现这些元素的经验?可以将单个元素渲染为位图吗

或者,是否有人有在Silverlight中打开PDF并在运行时将其转换为XPS或XAML的经验?我知道WPF和Silverlight图形库不是1:1,但我不确定这会如何影响通常由画布、图示符和StreamGeometry对象组成的XPS内容

感谢您提供的任何建议、提示或链接,请与我们分享。

看看这个

它是客户端pdf阅读库。实际上,现在它只能读取文件,但您可以使用它并创建自己的显示功能。

看看这个


它是客户端pdf阅读库。实际上,现在它只能读取文件,但您可以使用它并制作自己的显示功能。

您可能需要检查PDF的内部结构,以便更好地了解它们实际包含的内容-您可能会非常惊讶!例如,文本通常可以被扫描到页面或图像,而vecotr图形并不作为整洁的小软件包存在。我们写了一大堆关于PDF和分析工具内部内容的一般性文章,这些内容不是特定于任何工具或语言的。

您可能希望检查PDF的内部内容,以便更好地了解它们实际包含的内容-您可能会非常惊讶!例如,文本通常可以被扫描到页面或图像,而vecotr图形并不作为整洁的小软件包存在。我们写了一大堆关于PDF和分析工具内部内容的一般性文章,这些内容不是特定于任何工具或语言的。

感谢您的回答。我对silverpdf所基于的PDFSharp有很好的了解,但它不能呈现PDF。因为图形提取和渲染主要是我想要的,所以我认为这个库不适合我。Silverpdf显然也是基于iText的,但我也看不到任何证据表明它能满足我的需要,如果你想要合适的文档,你必须购买他们的书。谢谢你的回答。我对silverpdf所基于的PDFSharp有很好的了解,但它不能呈现PDF。因为图形提取和渲染主要是我想要的,所以我认为这个库不适合我。Silverpdf显然也是基于iText的,但我也看不到任何证据表明它能满足我的需要,如果你想要合适的文档,你必须购买他们的书。谢谢链接。我会做一些阅读,让你知道我怎么做。输入提交,而不是新行该死的。在处理从PDF“打印”出来的XPS文档时,我遇到了许多特殊情况,我的直觉是PDF会变得更糟糕,或者至少同样糟糕。我将忽略只是扫描的嵌入图像或PDF。谢谢链接。我会做一些阅读,让你知道我怎么做。输入提交,而不是新行该死的。在处理从PDF“打印”出来的XPS文档时,我遇到了许多特殊情况,我的直觉是PDF会变得更糟糕,或者至少同样糟糕。我将忽略只是扫描的嵌入图像或PDF。