我需要在不使用C#中的第三方库的情况下将图像文件转换为PDF。图像可以是任何格式,如(.jpg,.png,.jpeg,.tiff)。
我在itextsharp的帮助下成功完成了这项工作;这是代码。
string value = string.Empty;//value contains the data from a json file
List<string> sampleData;
public void convertdata()
{
//sampleData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(value);
var jsonD = System.IO.File.ReadAllLines(@"json.txt");
sampleData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(jsonD[0]);
Document document = new Document();
using (var stream = new FileStream("test111.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
PdfWriter.GetInstance(document, stream);
document.Open();
foreach (var item in sampleData)
{
newdata = Convert.FromBase64String(item);
var image = iTextSharp.text.Image.GetInstance(newdata);
document.Add(image);
Console.WriteLine("Conversion done check folder");
}
document.Close();
}
但现在我需要在不使用第三方库的情况下执行相同操作。
我搜索过互联网,但我无法得到能够提供正确答案的内容。我得到的就是将它与#34; itextsharp&#34;一起使用。或&#34; PdfSharp&#34;或者使用&#34; GhostScriptApi&#34;。
有人会建议一个可能的解决方案吗?
答案 0 :(得分:1)
这是可行的但不实用,因为它很可能会花费太多时间来实现。一般程序是:
这看起来很简单(毕竟只有三点:-))但是当你开始调查时,你会发现它非常复杂。
首先,您需要了解足够的PDF规范,从头开始编写新的PDF文件,做好所有正确的事情。 PDF规范现在超过1000页;你并不需要所有这些,但是你需要支持它的很大一部分来编写一个合适的PDF文档。
其次,您需要了解要支持的每种图像文件格式。这本身并不简单(例如TIFF文件格式如此广泛以至于支持合理分数的TIFF文件是一场噩梦)。在某些情况下,您可以简单地将大量图像文件格式复制到PDF文档中(例如,jpeg文件属于该类别),这是您要支持的复杂功能,因为解压缩JPEG文件然后重新压缩它PDF流会导致质量下降。
所以...可能吗?是。似是而非?不会。除非你有足够的时间来完成这个项目。
答案 1 :(得分:0)
具有单个页面和单个图像的最简单PDF文档的结构如下:
- pdf header
- pdf document catalog
- pages info
- image
- image header
- image data
- page
- reference to image
- list of references to objects inside pdf document
检查this正在执行以下步骤以将图像转换为PDF的Python代码:
答案 2 :(得分:0)
我会编写自己的ASP.NET Web服务或Web API服务,并在应用程序中调用它:)