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. 2款.NET开源且免费的Git可视化管理工具

    Git是什么? Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发.Git最初是由Linux开发者Linus Torvalds创建的,它具有高效.灵活.稳定等优 ...

  2. PHP中几种常见的开发模式

     设计模式 单例模式 $_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须 ...

  3. [快速阅读八] HDR->LDR:Matlab中tonemapfarbman函数的解析和自我实现。

    最近受朋友的委托,想自己实现Matlab里的一个HDR转LDR的函数,函数名是tonemapfarbman,乘着十一假期,稍微浏览下这个函数,并做了一点C++的实现和优化. 为了看到这个函数的效果,需 ...

  4. npy转换为png和nii文件

    #coding:utf-8 import matplotlib.pyplot as plt import numpy as np import os from skimage.transform im ...

  5. sigmod、tanh、ReLU激活函数的实现

    import torch import torch.nn.functional as F import matplotlib.pyplot as plt import numpy as np x = ...

  6. 2021年11月数据库排行解读:openGauss跃居第三,人大金仓晋身前十

    2021年11月墨天轮国产数据库流行度排行榜出炉,本月前三的数据库产品分别是:TiDB.达梦.openGauss,openGauss 数据库是首次跻身前三强. TiDB 自2020年以来,持续稳居榜首 ...

  7. dotnet 使用自定义特性

    namespace TETTD.Common { /// <summary> /// 导入excel特性 标记字段映射的列 /// </summary> [AttributeU ...

  8. KubeSphere 接入外部 Elasticsearch 最佳实践

    作者:张坚,科大讯飞开发工程师,云原生爱好者. 大家好,我是张坚.今天来聊聊如何在 KubeSphere 中集成外置的 ES 组件. KubeSphere 在安装完成时候可以启用日志组件,这样会安装 ...

  9. 《使用Gin框架构建分布式应用》阅读笔记:p108-p126

    <用Gin框架构建分布式应用>学习第8天,p108-p126总结,总计18页. 一.技术总结 1.Redis eviction policy (1)什么是 eviction policy? ...

  10. AI五子棋_08 五子棋落子规则对应的价值

    AI五子棋 第八步 恭喜你到达第八步! 利用前一步得到的棋型分析结果,考察每一个可能落子的位置,给每一个可能的位置打分,将棋子落在分数最高的位置上.根据经验,我们可以总结出下面的落子规则: 1. 致胜 ...