截至目前,我們正在編程使用水晶報告生成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