没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2023-07-25 11:12:55.030|阅读 117 次
概述:本文将介绍如何将 XPS 转为PDF 格式,欢迎查阅~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
Spire.Doc 是一款专门对 Word 文档进行操作的 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下载 Spire.PDF for java下载
行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 XPS 转为PDF 格式。
Tiff图像作为一种图形容器,既可以存储光栅图像,也可以存储矢量图像;可以包含高质量的图形,支持从1位到24位的色深;支持有损和无损压缩;还支持多层和多页。若想将文档转换为高质量的图形,并且在压缩过程中保存时不会丢失图像文件信息,tiff图像是您的最佳选择。
本文介绍了通过document.SaveAsImage()和JoinTiffImages()方法将PDF文档保存为tiff图像的详细方法。Spire.PDF for .NET是一个PDF组件,它包含了在.NET、Silverlight和WPF平台上创建、阅读、编辑和处理PDF文档的丰富功能。下面的截图展示了将PDF文档保存为tiff图像后的结果:
该方法的主要步骤如下
步骤1:创建一个新的pdf文档并加载它。
PdfDocument document = new PdfDocument(); document.LoadFromFile(@"sample.pdf");
步骤2:使用document.SaveAsImage()方法将pdf文档保存为图像数组。
private static Image[] SaveAsImage(PdfDocument document)
{
Image[] images = new Image[document.Pages.Count];
for (int i = 0; i < document.Pages.Count; i++)
{
//use the document.SaveAsImage() method save the pdf as image
images[i] = document.SaveAsImage(i);
}
return images;
}
步骤3:使用JoinTiffImages()方法将pdf页面中的图像保存为tiff图像类型,并指定编码器和图像编码器参数。
public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)
{
//use the save encoder
Encoder enc = Encoder.SaveFlag;
EncoderParameters ep = new EncoderParameters(2);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);
Image pages = images[0];
int frame = 0;
ImageCodecInfo info = GetEncoderInfo("image/tiff");
foreach (Image img in images)
{
if (frame == 0)
{
pages = img;
//save the first frame
pages.Save(outFile, info, ep);
}
else
{
//save the intermediate frames
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
pages.SaveAdd(img, ep);
}
if (frame == images.Length - 1)
{
//flush and close.
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
pages.SaveAdd(ep);
}
frame++;
}
}
下载并安装Spire.Pdf for .NET,使用下面的代码体验将pdf文档保存为tiff图片的方法。
完整代码:
[C#]
using System;
using System.Drawing;
using System.Drawing.Imaging;
using Spire.Pdf;
namespace SavePdfAsTiff
{
class Program
{
static void Main(string[] args)
{
PdfDocument document = new PdfDocument();
document.LoadFromFile(@"01.pdf");
JoinTiffImages(SaveAsImage(document),"result.tiff",EncoderValue.CompressionLZW);
System.Diagnostics.Process.Start("result.tiff");
}
private static Image[] SaveAsImage(PdfDocument document)
{
Image[] images = new Image[document.Pages.Count];
for (int i = 0; i < document.Pages.Count; i++)
{
images[i] = document.SaveAsImage(i);
}
return images;
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for (int j = 0; j < encoders.Length; j++)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
throw new Exception(mimeType + " mime type not found in ImageCodecInfo");
}
public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)
{
//use the save encoder
Encoder enc = Encoder.SaveFlag;
EncoderParameters ep = new EncoderParameters(2);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);
Image pages = images[0];
int frame = 0;
ImageCodecInfo info = GetEncoderInfo("image/tiff");
foreach (Image img in images)
{
if (frame == 0)
{
pages = img;
//save the first frame
pages.Save(outFile, info, ep);
}
else
{
//save the intermediate frames
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
pages.SaveAdd(img, ep);
}
if (frame == images.Length - 1)
{
//flush and close.
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
pages.SaveAdd(ep);
}
frame++;
}
}
}
}
[VB.NET]
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Spire.Pdf
Namespace SavePdfAsTiff
Class Program
Sub Main()
Dim document As PdfDocument = New PdfDocument()
document.LoadFromFile("01.pdf")
JoinTiffImages(SaveAsImage(document), "result.tiff", EncoderValue.CompressionLZW)
System.Diagnostics.Process.Start("result.tiff")
End Sub
Private Shared Function SaveAsImage(ByVal document As PdfDocument)
Dim images() As Image = New Image(document.Pages.Count-1) {}
Dim i As Integer
For i = 0 To document.Pages.Count - 1 Step i + 1
images(i) = document.SaveAsImage(i)
Next
Return images
End Function
Private Shared Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo
Dim encoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()
Dim j As Integer
For j = 0 To encoders.Length - 1 Step j + 1
If encoders(j).MimeType = mimeType Then
Return encoders(j)
End If
Next
Throw New Exception(mimeType + " mime type not found in ImageCodecInfo")
End Function
Public Shared Sub JoinTiffImages(ByVal images() As Image, ByVal outFile As String, ByVal compressEncoder As EncoderValue)
use the save encoder
Dim enc As Encoder = Encoder.SaveFlag
Dim ep As EncoderParameters = New EncoderParameters(2)
ep.Param(0) = New EncoderParameter(enc, CType(EncoderValue.MultiFrame, Long))
ep.Param(1) = New EncoderParameter(Encoder.Compression, CType(compressEncoder, Long))
Dim pages As Image = images(0)
Dim frame As Integer = 0
Dim info As ImageCodecInfo = GetEncoderInfo("image/tiff")
Dim img As Image
For Each img In images
If frame = 0 Then
pages = img
'save the first frame
pages.Save(outFile, info, ep)
Else
'save the intermediate frames
ep.Param(0) = New EncoderParameter(enc, CType(EncoderValue.FrameDimensionPage, Long))
pages.SaveAdd(img, ep)
End If
If frame = images.Length - 1 Then
'flush and close.
ep.Param(0) = New EncoderParameter(enc, CType(EncoderValue.Flush, Long))
pages.SaveAdd(ep)
End If
frame = frame + 1
Next
End Sub
End Class
End Namespace
以上便是如何将HTML 字符串转换为 PDF,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询慧都在线客服 ;技术交流Q群(767755948)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com




近日,Stimulsoft 正式发布了2025.3 版本的报表工具,为 .NET 和 .NET Framework 平台带来了重要更新 —— 支持在报表计算过程中以解释模式运行 C# 脚本。这一功能将进一步提升报表的灵活性和扩展性,方便开发者在报表设计与运行中实现更多自定义逻辑。
在 Python 开发中处理 Microsoft Excel 文件,选择一个功能完善、易于使用的 Excel 库都能显著提升效率。Aspose.Cells for Python 兼顾了性能、灵活性与功能丰富度,能够满足不同业务场景下的表格处理需求。它不仅仅是一个读取 Excel 文件的工具,更是一套完整的电子表格处理引擎,已在金融、数据分析、自动化、报表生成等领域广泛应用。
传统的建模工具通常依赖于基于文件的存储方式,这种方式在处理小型项目时可能足够,但在面对大型团队和复杂模型时,往往会暴露出诸多问题,如文件版本冲突、数据一致性难以保证、扩展性受限等。企业级建模工具Sparx EA的DBMS存储库为企业提供了一种基于服务器的存储解决方案,通过将模型数据存储在企业级数据库管理系统(如Oracle和SQL Server)中,有效解决了这些问题。
TestComplete与BitBar的整合方案,成功破解了跨平台自动化测试的核心痛点。通过高效覆盖多技术栈、利用云端真机实现大规模并行测试、无缝融入CI/CD流程,团队得以将测试效率提升,显著加快反馈闭环,最终确保应用在多样化终端上的一致性与可靠性,驱动业务高效发展。
相关产品
Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。
Spire.XLS for .NETSpire.XLS for .NET是专业.NET Excel组件,快速完成对Excel各类编程操作
Spire.PDF for .NETSpire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
FastReport VCL用于快速高效地生成报表的附加组件
FastReport CLX
最新文章 MORE
相关文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 
渝公网安备
50010702500608号
首页