我有一個服務,需要一個PDF文檔,調整大小的所有圖像,並在pdf中取代它。我遇到的問題是壓縮。C#PdfImage LibTiff iTextSharp G3/G4壓縮
某些文檔使用Compression.CCITTFAX3壓縮進行掃描和保存,其中一些使用Compression.CCITTFAX4壓縮進行保存。我正在使用iTextSharp並將流字節轉換爲Tiff,否則由於步伐或其他原因,圖像變得怪異。
下面是我目前正在使用的代碼來檢查正確的過濾器,然後轉換爲tiff圖像。
if (filter == "/CCITTFaxDecode")
{
byte[] data = PdfReader.GetStreamBytesRaw((PRStream)stream);
using (MemoryStream ms = new MemoryStream())
{
using (Tiff myTiff = Tiff.ClientOpen("in-memory", "w", ms, new TiffStream()))
{
myTiff.SetField(TiffTag.IMAGEWIDTH, UInt32.Parse(dict.Get(PdfName.WIDTH).ToString()));
myTiff.SetField(TiffTag.IMAGELENGTH, UInt32.Parse(dict.Get(PdfName.HEIGHT).ToString()));
myTiff.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX3);
myTiff.SetField(TiffTag.BITSPERSAMPLE, UInt32.Parse(dict.Get(PdfName.BITSPERCOMPONENT).ToString()));
myTiff.SetField(TiffTag.SAMPLESPERPIXEL, 1);
myTiff.WriteRawStrip(0, data, data.Length);
myTiff.Flush();
using (System.Drawing.Image img = new Bitmap(ms))
{
if (img == null) continue;
ReduceResolution(stream, img, quality);
}
myTiff.Close();
}
}
}
只是爲了確保你明白我的問題......
我想找出我怎麼知道什麼時候使用G3壓縮以及何時使用G4壓縮。
請記住,我已經試過了我能找到的每個代碼示例。
這是非常重要的,因爲我們與銀行系統接口,上傳的文件作爲FICA文件發送給他們。
請幫忙...
我站好了! –
我的問題是,當我運行此代碼時, PdfDictionary Params =(PdfDictionary)dict.Get(PdfName.DECODEPARMS); 我的Params.Keys有列和行,沒有別的。所以,當試圖獲取PdfName.K時,它會返回null。 –