PDFSharp 常见问题

PDFsharp: Frequently Asked Questions - PDFsharp and MigraDoc Wiki

1. PDFSharp 是什么?

PDFSharp 是可以用来程序化创建和修改 Adobe PDF 文档的 .NET 库。使用 C# 语言开发,可以用于任何 .NET 语言项目。

2. PDFSharp 依赖或者使用任何其它的工具或者库吗

PDFSharp 是全新设计并从头使用 C# 开发的,既不使用 Adobe 的 PDF 库,也不需要 Acrobat。

3. PDFSharp 的授权类型是什么?

PDFSharp 是开源软件。你可以复制、修改并集成 PDFSharp 源代码到你的应用中,而完全没有限制。

详见:PDFsharp License

4. PDFSharp 可以用来显示 PDF 文件吗?打印 PDF 文件呢?从 PDF 文件创建图片?

PDFSharp 提供了一个预览控件,用来可视化 XGraphics 对象的绘制操作,但它不能用来渲染 PDF 文件。

尽管来自页面的 XObject 对象的 DrawImage 函数可以用来绘制,如果你尝试使用它渲染这样的对象进行预览,只有边框可以绘出,它并不能用来渲染。

注意:使用 Pdfium 可以提供 PDF 渲染支持,参见:在 .NET 下使用 Pdfium 渲染和打印 PDF

5. 可以在 PDFSharp 中使用 PostScript 字体吗?

PDFSharp 不能使用 PostScript 字体。只有 TrueType 字体和使用 TrueType 轮廓的 OpenType 字体可以被 PDFSharp 所使用。

6. 可以中 Medium 信任等级下,在 Web 服务器上使用 PDFSharp 吗?

使用 PDFSharp 1.50,你可以在 Web 服务器上不要求完全信任环境下运行应用程序,你只能使用你自己通过 FontResolver 所提供的字体。见:PDFsharp Sample: Private Fonts

7. PDFSharp 支持 Arabic,Hebrew,CJK (中、日、韩) 吗?

1.50 还不能支持。从右向左的语言也不能支持。只有简单的语言,使用一对一的字符与字型简单对应关系,例如应用或者德语被支持。

不支持做一点解释。

如果你反转字符串,并将所有的段落设置位左对齐的话,希伯来语看起来是可以的。

阿拉伯语基于字符的位置 ( 开始,结束,中间,单个 ) ,字符对应不同的字型。PDFSharp 不支持正确的选择这些字型。如果你反转字符串的话,并且如果你确保选择正确的 Unicode 字符用于开始、结束、中间、或者独立位置,阿拉伯与可能工作。确保你使用包含了阿拉伯字符的字体。

看起来简体中文也是可以工作的。

8. PDFSharp 支持哪些 PDF 版本?

使用 PDFSharp,你可以创建从 1.2 ( Adobe Reader 3.0 ) 版本到 1.7 版本 ( Adobe Reader 8.0 ) 的 PDF 文档。

PDFSharp 完全支持 PDF 1.4 标准 ( Adobe Reader 5.0 ),包括该版本引入的透明功能。

某些 PDF 1.5 ( Adobe Reader 6.0 ) 的功能还没有实现,进而 PDFSharp 还不能打开所有标记位 PDF 1.5 或者更高版本的文档。

由于没有实现 PDF 1.5 中全部的压缩功能,对这样的文件在使用 PDFSharp 处理之后,尺寸可能会增大。

看起来是对对象流 object stream 不能支持造成的。

9. PDFSharp 支持 PDF/A 标准吗?

PDFSharp 1.50 还不能支持。

10. PDFSharp 支持 AcroForms 吗?

在 PDFSharp 1.5 中,对 AcroForms 提供有限支持。

11. 我可以使用 PDFSharp 将 HTML 或者 RTF 转换为 PDF 吗?

不能,没有开箱即用的支持。我们也不准备开发这样的转换器。

是的,PDFSharp 加上一些额外的代码是可以做到的,但我们不提供这样的代码。

在 NuGet 或者其它来源中,你可以找到第三方的库 "HTML Renderer for PDF using PDFSharp",它可以将 HTML 转换为 PDF。也可能还有其它库实现类似的功能,可能你可以直接使用,你也可以从这些开始。

12. 我可以使用 PDFSharp 将 PDF 转换为 Word、RTF、HTML 吗?

不能,我们没有计划开发这样的代码。

13. 我可以使用 SQL Server 2008 Reporting Services 创建的 PDF 文件吗?

对于 SQL Server 2008 Reporting Services 创建的 PDF 还存在一些问题。我们正在处理中。

作为使用 SQL Server 2005 Reporting Service 来创建报表。

对于 SQL Server 2008 Reporting Service 的变通方式,对 ReportExecutionService 对象的 DeviceSetting 参数,提供如下值:

theDeviceSettings = "<DeviceInfo><HumanReadablePDF>True</HumanReadablePDF></DeviceInfo>";

这样禁用 SSRS 2008 的 PDF 压缩。进而,PDFSharp 就可以处理未压缩的 PDF 文件。

SSRS 2005 会忽略该设置,所以它可以用于这两个 SSRS 版本中。

14. 可以使用 PDFSharp 从 PDF 中抽取文本吗?

可以使用底层操作来做到。你可以按照其绘制的顺序得到文本字符 - 大多数的应用程序使用从上到下,从左到右的顺序。并没有高级的函数返回单词、段落、或者整篇文档。

15. PDFSharp 可以模拟加粗或者斜体吗?

PDFSharp 1.50 还不能。

16. PDF 文件中的分辨率 DPI 是多少?可以如何设置该 DPI?

PDF 使用矢量格式,所以并没有 DPI 分辨率的说法。PDF 中的光栅图片有 DPI 分辨率,但分辨率由使用方式决定。

考虑一个 300DPI 的图片,该图片可以一次性嵌入到 PDF 文件中,但可以被多次绘制。可能在页面 1 中呈现为缩略图,在页面 2 中以全尺寸呈现,在页面 3 中双倍呈现,可能在页面 1 中使用 600 DPI,页面 2 中使用 300 DPI,页面 3 中使用 150 DPI。但是当你在 Adobe Reader 中查看 PDF 的时候,使用 1000% 的缩放因子将导致很低的分辨率。

PDF 本身使用矢量格式,所以并没有 DPI。PDFSharp 使用 point 作为坐标系统的单位,每英寸对应 72 个 point。为便于使用,单位可以从英寸、厘米、毫米或者其它单位转换过来。

PDFSharp 常见问题的更多相关文章

  1. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  2. SQL Server常见问题介绍及快速解决建议

    前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题.这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 下面一些问题是 ...

  3. 【腾讯优测干货分享】如何降低App的待机内存(二)——规范测试流程及常见问题

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/806TiugiSJvFI7fH6eVA5w 作者:腾讯TMQ专项测 ...

  4. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  5. 《PDF.NE数据框架常见问题及解决方案-初》

    <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...

  6. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  7. JMeter常见问题集合

    前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...

  8. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

  9. .NET Core中ADO.NET SqlClient的使用与常见问题

    一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作:目前有一些网友问有关于.NET Core操作SQL Server的问题在本文中解答一下. 本文旨在指出,在 ...

  10. 企业IT管理员IE11升级指南【6】—— Internet Explorer 11面向IT专业人员的常见问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

随机推荐

  1. android启动时间测试

    需要对比基线测试的情况: Kernel log: adb shell dmesg Event log: adb shell logcat –b events Logcat log: adb shell ...

  2. 随心所动,厂商的CPU核管理策略介绍

    一.引文 随着CPU架构的发展,工艺的升级,带来性能提升,能效的提升(同性能下).但是由于极限性能的增加,也带来了peak功耗的增加(大部分情况下,能效比的提升无法抵消这部分),CPU功耗优化一直是广 ...

  3. PostgreSQL 15 新特性解读 | 墨天轮优质文章合集

    5月19日,PostgreSQL 全球开发组宣布 PostgreSQL 15 的第一个 beta 版本,这一新版本在开发者体验.性能表现等方面都有提升.为了帮助大家更快速了解到PostgreSQL 1 ...

  4. vue前端开发仿钉图系列(2)左侧图层列表的开发详解

    项目开发前还是特别说明一下组件库的重要性,谢谢饿了么团队分享的element组件库,大大节省了页面的开发成本.左侧图层列表核心功能有1.根据图层类型展示点线面2.开关控制右侧地图上点线面的展示和隐藏3 ...

  5. iOS中NSBundle使用小结

    bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,文本文件,属性列表,语言包,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle ...

  6. 6. CSS有哪些方法可以提升层级

    1. 使用 z-index 2. 使用定位,脱离标准流

  7. 探索 Kubernetes 持久化存储之 Longhorn 初窥门径

    作者:运维有术星主 在 Kubernetes 生态系统中,持久化存储扮演着至关重要的角色,它是支撑业务应用稳定运行的基石.对于那些选择自建 Kubernetes 集群的运维架构师而言,选择合适的后端持 ...

  8. Tony Bai · Go语言第一课 _个人笔记 04|初窥门径:一个Go程序的结构是怎样的?

    Tony Bai · Go语言第一课 _个人笔记 04|初窥门径:一个Go程序的结构是怎样的? 1.配置国内的Go模块的镜像 配置国内镜像代理(使用阿里云镜像) go env -w GOPROXY=h ...

  9. Java常见面试真题之中级进阶

    前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!java反射的作用于原理?说说List,Set,Map三者的区别?Object 有哪些常用方法?大致说一下每个方法的含义?Java 创建对 ...

  10. c语言里关于本地变量的一些规则

    关于块的定义(自己的理解):就是☞{ }这个区域里面的东西以及" {} "这个符号的本身 ·本地的变量是定义在块内的 -->>1.它可以定义在函数的块内 void sw ...