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. @Primary ,@Qualifier ,@Autowired ,@Resource作用与区别

    首先阐述 @Autowired 和 @Resource 的区别 @Resource 是JDK自带的注解 可以按名称注入也可以按类型注入,默认是按名称注入,没有显式指定名称时,在spring容器中匹配与 ...

  2. 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系

    阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ...

  3. JIT编译选项

    JIT(Just-In-Time)优化在编译过程中有多种编译选项可以支持,不同语言和平台可能有不同的实现.以通用的 JIT 编译器为例,以下是一些常见的编译选项: 编译级别(Compilation L ...

  4. KubeSphere 最佳实战:Kubernetes 部署集群模式 Nacos 实战指南

    Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 是构建以服 ...

  5. 生成文本聚类java实现1

    本章主要的学习是中文分词 和两种统计词频(传统词频和TF-IDF算法 ) 的方法. 学习目的:通过N多的新闻标题 or 新闻摘要 or 新闻标签,生成基本的文本聚类,以便统计当天新闻的热点内容. 扩展 ...

  6. jeecg平台相关01-vue2迁移到vue3

    01-vue2迁移到vue3 嵌套: datasource: master: url: jdbc:mysql://127.0.0.1:3306/jeecg-boot-vue3?characterEnc ...

  7. dotnet core微服务框架Jimu ~ 会员注册微服务

    提供会员注册服务,用户必须注册成会员才能享受应用提供的服务,如浏览和发布新闻, 但有些服务又需要指定角色的会员才能操作,如所有会员都可以浏览新闻,只有管理员(admin)角色的会员才可以发布新闻. 有 ...

  8. Matlab矩阵运算的硬件资源分析

    在用Matlab创建矩阵并计算矩阵乘法运算时,要注意计算机的可用内存大小(空间资源)和CPU性能(影响所用计算时间). 例如我们做以下测试:n为qubit的数目,那么一个矩阵Matrix_A=rand ...

  9. 基于Java+SpringBoot心理测评心理测试系统功能实现五

    一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...

  10. Slate文档编辑器-WrapNode数据结构与操作变换

    Slate文档编辑器-WrapNode数据结构与操作变换 在之前我们聊到了一些关于slate富文本引擎的基本概念,并且对基于slate实现文档编辑器的一些插件化能力设计.类型拓展.具体方案等作了探讨, ...