截至目前,我们正在编程使用水晶报告生成PDF并将其保存到数据库。 PDF文档中有条形码图像。每个文件大小为120-150 KB。.net压缩pdf生成水晶报告
一切运行良好,但最近我们面临着数据库大小和存储需求巨大增长的问题。这是由于每天产生100-1000条记录。
有什么办法来压缩PDF文件然后存储它。任何可以执行这些操作的API /工具都不会对条形码造成问题。在压缩之后我们可以大大缩小尺寸吗?
或者其他任何存储数据的方式都不错?
对此的任何建议将不胜感激。
感谢, Sveerap
截至目前,我们正在编程使用水晶报告生成PDF并将其保存到数据库。 PDF文档中有条形码图像。每个文件大小为120-150 KB。.net压缩pdf生成水晶报告
一切运行良好,但最近我们面临着数据库大小和存储需求巨大增长的问题。这是由于每天产生100-1000条记录。
有什么办法来压缩PDF文件然后存储它。任何可以执行这些操作的API /工具都不会对条形码造成问题。在压缩之后我们可以大大缩小尺寸吗?
或者其他任何存储数据的方式都不错?
对此的任何建议将不胜感激。
感谢, Sveerap
不幸的是,你不会,因为它已经被压缩压缩PDF获得多。
许多压缩 PDF文件可以进一步压缩。
PDF文件的大小通常可以通过降低:
我不知道水晶报表如何压缩PDF文件,但你可能想尝试Docotic.Pdf library和下面的代码,看看你的˚F iles可以被压缩得更好。
public static void CompressExistingDocument(string original, string output)
{
using (PdfDocument pdf = new PdfDocument(original))
{
pdf.SaveOptions.Compression = PdfCompression.Flate;
pdf.SaveOptions.UseObjectStreams = true;
pdf.SaveOptions.RemoveUnusedObjects = true;
pdf.SaveOptions.WriteWithoutFormatting = true;
pdf.Save(output);
}
FileInfo originalFileInfo = new FileInfo(original);
FileInfo compressedFileInfo = new FileInfo(output);
MessageBox.Show(
String.Format("Original file size: {0} bytes;\r\nCompressed file size: {1} bytes",
originalFileInfo.Length, compressedFileInfo.Length));
System.Diagnostics.Process.Start(output);
}
声明:我为图书馆的供应商工作。
是否将pdf存储在文件系统中,并且只在DB中存储pdf的路径选项? –
每天120MB不算什么。 – Lakis
@MikeBantegui:我已经提出了这种方法,但业务并不关心在文件系统上存储pdfs – sveerap