Fath Bakri
Fath Bakri

Reputation: 189

convert pdf JBIG2Decode filter to image c#

I want to extract all images from pdf, i use iTextSharp to extract images , then i use FreeImageAPI to get image from pdf byte[] image, this is part of the code:

public class ImageExtractor : IRenderListener
    {
        ....
 public PdfReader reader = null;
List<byte[]> ImagesStream = new List<byte[]>();
private List<string> ImageNames = new List<string>();
public void dowork(PdfReader r){
reader =r;

var pdfParser = new PdfReaderContentParser(r);
               
                var instance = new ImageExtractor();
 while (i <= reader.NumberOfPages)
                {
 pdfParser.ProcessContent(i, instance);

                   
                }

  if (instance.ImagesStream.Count > 0)
                {
                    for (int j = 0; (j < instance.ImagesStream.Count); ++j)
                    {
 MemoryStream imageStream = new MemoryStream(instance.ImagesStream[j]);
         // create a FIBITMAP from- that stream
                        FIBITMAP dib = FreeImage.LoadFromStream(imageStream);
                      
                        if (dib.IsNull)
                        {
                            continue;
                        }
                        
                       
                        //turn it into a normal Bitmap 
                        Bitmap bitmap = FreeImage.GetBitmap(dib);

                        //unload the FIBITMAP 
                        FreeImage.UnloadEx(ref dib);
                        Images.Add(bitmap);
                        bitmap.Dispose();

                        //unload the FIBITMAP 
                        FreeImage.UnloadEx(ref dib);
                    }
}
  public void BeginTextBlock() { }
        public void EndTextBlock() { }
        public void RenderText(TextRenderInfo renderInfo) { }
        
        public void RenderImage(ImageRenderInfo renderInfo)
        {
           
            try
            {

                
                PdfImageObject image = renderInfo.GetImage();
                if (renderInfo.GetRef() != null && image != null)
                {
                    
                    byte[] tempImage = image.GetImageAsBytes();
                    ImageNames.Add(string.Format(
         "Image{0}.{1}", renderInfo.GetRef().Number, image.GetFileType()
       ));
                    ImagesStream.Add(tempImage);

                }
                
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n" + ex.StackTrace.ToString());
                throw ex;
            }
        }

but FreeImageAPI did not extract any image, and i open my pdf file with notepad and i see the filter type which is JBIG2Decode, here is part of pdf content :

%PDF-1.4
%،³إ×
1 0 obj
<</CropBox[ 8.50394 8.50394 430.216 673.336]/Parent 805 0 R /StructParents 1/Contents 2 0 R /Rotate 0/MediaBox[ 0 0 438.72 681.84]/Resources<</XObject<</Im0 3 0 R /wspe_X1 1676 0 R /wspe_X2 1720 0 R >>/ProcSet[/PDF/ImageB]>>/Type/Page/Annots[ 1756 0 R ]>>
endobj
2 0 obj
<</Length 189/Filter/FlateDecode>>stream
xœ¥خف
‚0às¯â»‚mn2
D¨لپaشY¬±Bآںو*¼û¦رi‌|?ïةَâBqŒs‘¥@’© œê{¥ôتبD    J±‏
Uïآ^5p…€E(¤î%ہ#EءtھpVH[طx°ج…‡çئV'©&m;tٍ\5زVmƒثغرژرNZmji.?!(ڑèqس1î&G3:uyô‌>ى‎ûŒ
{+Xبُ9pتsق¢/بsذٍ1d5
endstream
endobj
3 0 obj
<</Subtype/Image/Length 3207/Filter/JBIG2Decode/Name/X/BitsPerComponent 1/ColorSpace/DeviceGray/Width 1828/Height 2841/Type/XObject/Decode[ 0 1]>>stream
       ‍  ے‎ے‏‏‏      ”jœ¤r²îW[ءê\[sMىJWل“‚’X&ک±چéْ~#ô‎' zپلHnH5Œ|t~bOI؛پ$Z²ـ-ؤسôV&`k°هàُ‡uڑ®±‰6 `؛ع$n‏KE@رص£'x1ك‹¦E‘‚I†­ڑ(ؤ[Itm<ـ؛ى¨زïغ2ط?ٹK…\¨بp(حI=ح9_|L³ةN¤ءc†àعmے3EةpءW8œغK®¦û
†>ہrژk´هث"$i‌F»ھ§ُ¤h)
Q—ç)gDس–½‍®S½
ظ¹J$‚ف„B<Œ!CQًض>کVےL@«خصGV6L†‡«‏î×ک½س-›Hِ'ç(د(*†
پ•  &فFيˆ@ھ¥j:—زخLQ(nے+¾ٌœ.0ة¤_ں0`ژغ3÷S°ب²‍¼ع"·يeْ¶MàٌtŒdےD}s2¸¨ھخٌ8“"jٍxصَ‍ـ؛n@+°¬Sأ$ؤê5ذ‰bي±%"ے0€V’hY¦V>I7ّLF‏د5ع ïت[©حں,سہچg°¶êLîëٍ ؟$ڑزھ­F:W~Bوٍغ`µBNrـpcêٍDGïAچ;†0ضw«Xچض…;^‰tœ¥n¾zعq‌âˆ\bKإ‏s9¦Eأvw&
ˆ¸ˆœ´خرآ×[¥Ikدtل=3¬T7êٹz¹fêêŒQs’و"ln,ء½X—¨%ةے[ہà\‏_ب!+mظأmطے    ِ‰?¸2اbdّ+%iزm—ض‎±)*T|¢ق/9¤xjزBgه¹ûصnح×Sص½/ح–dàM،ے<¤\Z­ فح¬ہ¾Q®almأا‍پ\t7l¯mP‌ƒپDyططSVلI¤iuz!/تشحٌ¨IP Xأ¹ٹ?¾ھگث‚çژخ·–Œچ´%•J/i#H^RفںO6#هHG—ج”ق°تًثـê…ظإ¦h€(/luf®jF9k^%Pl«لëE*صC.—ث,X&«}9†uëضةِ%-‰چُ]د<«“eXVruثگھFڈàU؛0‚¯f¶d­ه HKJ½€پœي²cيL‘tچ ژےm…Cٹاظî(Pو=¤é èء·µ¢/’L{گ^f¤~,إدآj,é´~ٌ±¸Tg,ّvة&(Jtï*Kر©n†×s~œ™ً,‹«ZyZ­Qص¸Gف(حüض\\î|ù×?ئگŒBٍV€‎wچس)ٹگW T}(•رsU|ڈ`2هEE·ج12ع†!OrJ,j›}ص
ë£uICI‰S›r·ديك%S:´†geˆW(§ف*îـîrض¢Y+›pŒ‚¢<آ
ہé±.ŒMقïٹژ4®A«¢² u(™اcژ_چ4Y5Fœہؤ}ے آن–P_ق¹—هضثغ’3éع‏éb?`—sdhى7—؟ڑ ُfY‎؟'ِثdW)/…
1"îêCâmبn8]êء›é‌عھ‰ب
iµ%Zظ7ٌ­H÷vqép3ٍ‏CœتIؤV8¯ةپO&
؟¯’îٌGœ%س$ـخٹ¢}فbCQï…±`پہw$tœ‌ّ•|GL7Tےxط…”0û;²#:”ھ¬چ£]½a±<»ف¶ة‡ث‚b$]€ظٹiذE¶]àmç<5بظئuliٹ"ژûRھèèEبU،z‏ùچ*5Œ±·K£”*§"¨8#غن$‰0‡ٍ6tوw<µ&#»²t&²²ي‘قذpآ‚!ق©ِ ‎ھ‚م÷¬ر،
ك—Y~85¬»!ض¸—£·=9r¨Bد^—}S… „ڈL‎IأƒA¾.pشچو ½£ک©R©‡مر8{‎ه¸?ح•أ¾=د¢َvJVGہ“ھٌµ¼­üH2^·م y;”   ¯«عh^™،èّؤ`w‏   ،_"_ٌL;t8à‹PLّمAآ‏ف»بل €"ہ–Zكç‰(‘³]‹ظب.ـYh0¨ط£62سOlبو+^ںث‹_„»س&ھé«×| ’‡”C“‘|¤$¼نر!؟ٹ9½]ہمم¢C2«9پِ»ا›¥fOكxء؛rز¶ث 5i‏´biCVz¯ہ‍Y4cس³ذRI¤كR>N%Z’ز»8„J:ل™â¥TWڑ25×ù,üeڈAع/à·³ےw©ٍ؛#ےs;pë‍G²kv÷›¢‘QٹDci¨L„<ق¤pيض<oكؤPعث„Bپ“”حے[ت`لج¨”’»ًiك5ُyF=إEذî‚ز‏غM®Œzû‡9»rgC ث5ِBزeسƒط@آچsجح–ثخh°»]
^ذ¨€ڑ(+-°’(§ثةOqk¥·}ک65é3ء¥‘V؟ء¶b"!×K"ظhكQً¶~؟à>b‡îü{؟…أى‰"·!ٍ½ٹ!$³خ=8·¾8غ“Œ6ژ/س‡\ديë(ùgˆooى„؛$³غٌ› âژ¦[pةA?x£U}¬a_ŒُmZy¦|‎’;ظں×yِêى:‰èظٌ¦¯ƒ®€[èV§)0©“It©نقdü›jhٌ­ُ“ُىkضئ]%e©§ ُِ×^¤ّ„$ج8ذژ¶ˆa¬
ع‡ڑˆiE<™‎ôںكS‹c®|¢5cCkً_:“îeگ Y ٍ€©؛ ¨،زàw6اثٹ)ْj ôêLjأ],qwڈ 'x
ج›-îض?ڑءmaµc¼wڈ9U½M†ژ0aصDہx?،«k
‚$‎v?‰ëkR©ذؤ«pLٌ²" \ئيظ®فھة&W‎†s¯é،F)a4ٹ;+fپب<¤âزِ‡ھˆ¯ذ£W>`‰}ô?4wْج‌رن"§B½>•±£@ٹ‏·J‌A`xa§ڑ“¥کِ}~¶d”#3;7خ'±³,´k}¦9¯¥َé4H#    ”ù³t«”ث¢¬ًhصهu Œ؛+د=]َىEàؤ¥j.QàاIo_BàچuJب—?پوIn#"l6€„4­ٌخژِ×@…آ .œêKrGف‚ء›yE’5GcV'PT!|@ئل§T\ؤپژS}Yع؛“ٌف4'م×4®›Rٌ•‏Po’©ےآ”5Vy¦r`éâû| ر>  ƒGâدJ±ù>ع´TB­/
‡ü]زUفl°    µâ„`Pضû“\گc÷Wه”°Wس‌ٍC¢ى[?‹wsàœچٌ
F„ژè‌ھGèrtسےK²èNkهCîIµ¦°–w)¬½‍ںéظ]'@ص“
e6}_¦L £بطûâسS‡t[چء¦¦î\½vgW‎¨qmê5ïqيK-60خy‡§Uçى^ز‰Z„Bo·+ï×ٌîaM®"8ç،£×‌؟±pˆS¤ôث<ش»ٹIظ”üR-ء
.O‡°¨”²EëJ¯\S‎ْژïôمç „ةq“Zd€–ےfA¸م¶أ®ˆeىX)J¬}´ْـي،سIچ÷ر "zlôBg¨هنéîM´ôq44pغû¶dPثعœkŒ_‡Œڑuجîذك¼  ًہي¥
S÷@ّŒع¤x
هèٌVٍ-س³›|ئ›´‹^ˆLأTء؟ذXي"*²:(
«رEآ'Eض½iJ”قç›×/Q‚’‍|ث9‍;‰<‡ٍج¨Vٌ`•ا7B؟ ہهîµ—8^Cپعڈ3غvƒحIر`ٹƒGXv'5:½f¯`ق³~؛J¨ٍOéf‡s(ص¹½ِ™¨éè.گ‡ک²2_Hىî‍L=êةز«6لo—¤â–Qؤƒùڈغo­WئأًمژT\^ق ^ھ++ے"3عOهçRùغ-ْ؛ْ_
6A=ّ ذWشظ   ٹّoْ#»jh
üهز¥^<kزآ=”C;_‰ 70nش?ے¬   0      $          @          ´  $              5  ms³7µ¾>¥; ¦®G¦X°ٍâGD1ژ‹8¤ًض”سء,’®ٹ8ىکپd.Œ°à 4êlہHcأm‌£N0ٍ—©}®LءëàOُ¸„گ:A؟ًZ«?qîV
m-آز ل©£س«bچ4éغfT “0M;è~X.4ہ¾ثSéٍ錤9ô~%Lَt[aï:J¸غؤrٹ>j&ƒںے¬
endstream
endobj
4 0 obj
<</CropBox[ 8.50394 8.50394 433.096 678.376]/Parent 805 0 R /StructParents 2/Contents 5 0 R /Rotate 0/MediaBox[ 0 0 441.6 686.88]/Resources<</XObject<</Im0 6 0 R /wspe_X1 1676 0 R /wspe_X2 1720 0 R >>/ProcSet[/PDF/ImageB]>>/Type/Page/Annots[ 1761 0 R ]>>
endobj
5 0 obj
<</Length 187/Filter/FlateDecode>>stream
xœ¥خ»‚0à‌§8Oذh
$„D‹1&؛™عTس.–ھليهâ «.çٍ/كڈa,ؤ1خy–IX¦pھZھµ=ً”|َتn;Yأ
(u>,d(§SV€³ٹ@عہضپUخ¼0Vں…œ°]ك*\ˆ‹®…صMچثûةژر^Xe*a®?ô h¦اي…م"DéTهظµêxpے­3"‏ٌء"و»h¸? o†œzR2cق
endstream
endobj
6 0 obj
<</Subtype/Image/Length 2967/Filter/JBIG2Decode/Name/X/BitsPerComponent 1/ColorSpace/DeviceGray/Width 1840/Height 2862/Type/XObject/Decode[ 0 1]>>stream
       
  ے‎ے‏‏‏   >   >”jœcô؟¥¼¾†wC‘9ذ=¯½k‍W¬Zo‎‰8‡ٹX|Jژçyهك×^e{uv§è­#è­h°4uX¦‹وs–ـµشئَڈز_دًع73ؤد¥‚dhHچظhëŒ}E­ے/كJ“ظX´أ®[hزù1'°ٍ’
­فêـ#هضû’×p'k°m‏ُؤر¶™¨R¯¼C²}{لطً›„s';("»أ`C=8™û8™xٌر "¤
#9êں½¦®آِک‌ h إ'UrEذB«w,‘%صtP“ٌˆطW( صVW [bٌˆ¶~ƒW÷©Q®\^حإeWc™ئ¢¤ر…•ڈ€iلنw¶f:ہc¦؛¶\ف~³z¹Em‎;0i¾چsز9xW¦؟ç‰>€و.ض…dإپإرéDعhèد^د  ’U¾5.h¤£ْµض?z!®ًuُ}¨ڑمه‏‰‎¹ُ‰©‰é`ذسٌ;ƒq°K–ص ى aDكظTtbMWزں9پk“ؤ|ص¾ىw-Péٍ‡ص5céشخ)g£ظع8¦tأL;3ür”
n”Zـêؤ"ïF‏ںآrBJk 2‹{Omnمغ¾êخ·tج@ط‏O®قMس#§®ں.®4ک9u—]ك}bّ—l&sWYZwىڑSˆ? –[r_(ط½û®،غثK‡ہ€د_¯؟èS‚àd“eحAj
u`D¨Lf:@×vV¢w¤VHcي€™hہCُpôf„RYXں›¾X$غثف .…)ڈî~·Uگً؟)3”  ج£يإ¨ـ›چْئˆ›مگ‰ىت…ٹ°غےg×wwق“NKءس-„†£ٍé¥M7_ةp7‚ô´ه“hُ‡™"q6ژsسŒ‍©3‚رK؟ش،صHهŒR‘کچئƒُ@“C>xجفeH5Wd!±3™ًسهIزœإب÷آ.µغv‡îü"3فIJ—™صکـ”جـ
 ¯ë©،)¶èجكژےU—ى@n¸›dّ“K)`cچcنٹç¨غ—¢…P~>6"Os¹¹p_¼‚‚ثg.\yzMأَ[Z"~Zے,‌J:s{{Ay¦ڑآاےei6}،ط[ه‍$j  <اZظ¾°‌LخـMzꬃک_¯5|(ة½؛X•;€ے p“پ~eغTs لFàˆ,r\³کJَé–ّç5è
ûüèMC·>ض’«©lüg=µع®ƒ_\|wغرحّS]ا:eAîب’C‎‏Xaأ$àB|Jd‹Jè†ً’ZGء8S؛§أ|Vث;&5— ¥نhy
·IJظں„ىè°u³yiûس»¼SDخn u•»gڈuج¶2؛s/ذأm.،V¨½ء`؟´nœac-ù    \{&ےS-3nc~سب”9›x+f¨هو~I"ہ{lyœ$ôdي®½‹¨[3ك–^هيç«•“ح™‎Dg¾kطنû¤W¼شi÷
,ل3ہدH#حùs•¨ـ‎بDˆŒ-séüœ".ژ—«ü@ىf)Cùژ´%6´f5nL'éٌV
فMےmr‰تش¥ٹ…(ؤ‌ڑ®ٍp¾‍ûٌ³غꀰگ_غڈ2ذ•pج@سں|'qZïS‍ٌqقaحb£BحgF ک"]چ£$‰ِبr¬ى¥أLل;¥,ŒسَqهR؟ب&ؤ–ج@^د¨ك{Aًت‚وf„ضد—¹ççں~ت$@~¥ر ‌uïâ=Fطajحüـ3AEŒ›âر¸²kK/نَْ‹­ظذ؟Nؤyىَï7*d‌³6‏ِf§،zپ‌]ئN%Z­0رsئx
يEے¨”ّ5›"H.g¾„خ']:§×o€™w‰»’rêن¤M™ںٍ”8vvçإّقه[[Yhl†;µ’4S¬€3‍ٹ´b
)ïlأ~.µ÷——
ٹس2÷‎گpû•l«¦ئرs¶’^!“¼î:„ں %Tp…Iàk@êQ²ْOWؤ
K,ô-[j9ّèH_T3ذ¯S اü(×™ڈھ‎jGپ)ëEkˆ/cے-yûl‍3³ڈل”q?‡غ¥û©¢j†yِ‡7طpà¾F0t-c,±غ حط±•ƒ%W¤كـy†شخU»ل.*ض,b¨‹,™à2µ’ôeج؟FE·„©ش´rع÷Oہظ§ü‍@¶S~خêëDEgVخP!‹;´طڑاَWأm‡}gٹ
9ةضsز_P]Œٍ»ژOL!&آ }ُةUœ(ƒ0éژT\F/Oàء4Wز¬f‹AحvTُ«پB³X تµeï¹yN‎¶JOةר¼jٍ°–ذpŒXعث<–ڈف†·¾¦ke³kkہ›ڈ-ëdء÷YcwoLتہ=ُ™وعپf¶•چTً©¯xèty½à ÷ئAج—))xپ6ëuى†ûغoص|^“غثظٍ”Œ§Hہص‌شë ¢ةµmت
¸ٹV}ؤêcëوzù´.é6Gg!&§G¶  <O‎2ظoِYdïâژê÷ذ‹‡ }¯Hغح8خJپ‡xR£ط{Kwh§ïhû–¢®`صٍض‏'°»ڈ}چ[UB°!لو"Cغ¾£c‏‏€}ْ’ے¨ـ±½(bذ(°@p_dض6§س
<ٹش©عْ±q0êِ>ٹeuپgtٌüك§àك^[ضn‌°ً(è±ؤëî~ëmq“ِ:H}+r‎Zjt2ا¹fأg@Zë½ھخ,·$طح•بàؤƒدKث   ¼   إWش9نF؟9«.1،F­•ڈKچ@XGyإH›Hء ‌,®(:k™+okتOس‡;َم   »ٌّûً¾¥
'‹‏­?p}ئٍ^وع‹ هvص·9$!n³à¦>ںYه(îٌü›#ےC   ؤhف¢kë²ê؟’–#p‎خTUع'‏8xˆةشQîOصڈ|½ژ(ط“´¤W`¾µ†گXr±hâأëع»ٌذ|ےإ‹$´I“{ùb'طû#épسàق|@…لQکœjLٌ]ن&
hOqKچa EجO¤ُGïVœ„qQ ھ[ح·*I—ٍغg وLتYH_ً:ج P‎؛k/q(fم=ةىّ–•rل
âC¸|Ff\#’ي¼و)›Yچ½Z‌ç÷ظ  üـ/ءûہ³¨ف‌£ـuجBھ“{سt ذhc2¼`Eسj& عYب©4K‍]ء2و¬³àِE¶6ژ)َà¢û    ¨ˆzOrx¹@جéإg
W9:c‎èثyًٍ…[کc´#+²´؛§Yفy"ˆûù§(h_ê‎­“ب$ٍّü0ƒuB·ةا¶ï‘yتŒآ§®d‎c{çگ‎ش§#فٹٹك€ے¬   0      0  .        @         Q  0  .            d)”{ق{ک Hئ^ے…ھّزWظ‡;VPm Qv±·½5‰ûVêZا,Cëm³•شZشجŒسP´}INLh%رX×÷¹‡œ’ƒQٍ¯¶ ¦»lR€aجO‏vl"‏ھْ²&x%sxMفء9ئ‹‌ثإئ& Bv¸<rأsµص€چ'ى·”ع†}„~£ةx"صûü£ع‎fق†nF=ىhvµاèRْèـ÷mش]qش÷[هحہWا يأ
کJMà?};‹q2…fZ:¢©muc„ exح=ˆ5؟„
/عد¯#ّ‌چة‏غf.اOGڈx²…o
ث TOول؟)‡•زQ‰t-°„ل2ض„َخi$¬g/XŒ]/ل{àھتDح×َ{ْ‎B-ٌ½ôرd@Q±¢ں.ىُQZHçTgےے¬
endstream
endobj
7 0 obj
<</CropBox[ 8.50394 8.50394 433.096 674.296]/Parent 805 0 R /StructParents 3/Contents 8 0 R /Rotate 0/MediaBox[ 0 0 441.6 682.8]/Resources<</XObject<</Im0 9 0 R /wspe_X1 1676 0 R /wspe_X2 1720 0 R >>/ProcSet[/PDF/ImageB]>>/Type/Page/Annots[ 1766 0 R ]>>
endobj
8 0 obj
<</Length 185/Filter/FlateDecode>>stream
xœ¥خف
‚0às¯â»‚mN™شŒًہ0ê,ضX1آںو*¼ûœ    رi‌|?ïةَâBI‚s‍¥@وsX¦pھZھµ=ً”|َتn;Yأ
آذGlّ°ک¢x¼d8«¤
l=XهـأcُYبرعُ­آ…¸èZXفش¸¼ں¬‹ِآ*S s‎،™h·iىF،plٍىZu<ّے¶qF0Cdئ€ررa ْ†¼z£cr
endstream
endobj
9 0 obj
<</Subtype/Image/Length 7123/Filter/JBIG2Decode/Name/X/BitsPerComponent 1/ColorSpace/DeviceGray/Width 1840/Height 2845/Type/XObject/Decode[ 0 1]>>stream
         ے‎ے‏‏‏   ؛   ؛”.ع!ضجN-¥ث+!ز2ل3Hنًج‍¬قRM8xطٌq/‎ e´çهf.ڈ`قطزEکSگصFئ7é،:ؤ وُnœ—èƒ €ء¼ €îچ„­
ي¸'`ثلef´°èŒبj95Xگׇ«ë!B€vûx–_$ieôغ+‡«P?´‚•ٹ­،ƒG×Wص:ڑظT.x4î-yh¼EP7pگrـ¼(ء
C¸!°ôp
i
›يQç[â1™{ـ
V¯ف“¶¬e±L¾Yلؤj:‚+]VC«پz ¤َسV–c9;Nu¹ç–k¥ہًb
ہs|‰تîrç³ئ,صp'ت™xس¨’ذدî+زہبئ_¾Iخ    ŒLئ،[ءƒ$€AtJ‌²  )™à* ّبRLپE’‡½#YEjé1qm1“ëˆO؟½–طxL{ٌâg¶„H‡¾ُu\مjل†Jِح&پ¸Zآ…]ر! ‚¢'¨gY3صCھ N´'r¸
ئkz½Z8™1ؤغههM8ةt­µچ¨نل[©-&»Gڈجئ;‍B~笒®¤¸'2,Cطآ؛^™ُ&”كخ¢فmT4’ل)ئٍّز†g„Q-
¤xْSJK  4B*~†U؟ô    Ky[‎n ˆ sرè²ê§"©‹ے5RيZ’¬!سن%£fخ}I‌-!FدR^(¶1TVئ¯\s[ٌUO؟طXا°ٍtآç¥دآ‰B¹‌Rّo½€‏ي _µjأa’¦؛°ک´_F]³سS‌ٍ«ں‍C¯PيI8n‏،‌$rb‎ڑ¾N؟ًqU@°‏اظي`²c‍|¶نڑdد°=s…¶'ن®!÷ غصوqsL„P‏ج•sï…؛A‍ژ€بUلىکE
k#à’y¯-ï†;™ ׫p0¨ں¦جKپSءًأ£2qثٹz3xˆ؟ٍ‏M&$^d“uسyrتأNخ.@¾ïN¶·¯êz3ٍ“©Ia-
üyڈŒ7تm›G™c±ااذjëgk6ى»0pm»(mâُچ"W®K¥E;/Iْ¨ô*)?ظZطغُ\¹‍$P©¼ًٍ°کًگة؟
¶uضéظپُحwcِî©&&=پàجژمحه·ˆV/%‎(ù¼¤؛ׂàHuآ2F»¸3ّئںذ³L^kےü°دd‏âJ*³92B²Hپ„;jo»pةgùگµ5ü.زجsµ”‏`ع5پ=œنb<³”ظ‡!%g(ZجM¯ح§ے4ہâ{   @t“– “ڈ3Lœد‡‘>Uےgظ{–R غƒ3®ِïBù؟شمعٌنœ\AزuuـîC™·FZGY[2م‏ïôگ¹Uء­ہj®/­‏Xءغ£VŒھokçx su²ûi¯Vُva«ë^=\RLµظv«mأjُ´Oي×ا‡ )¥،پâحہV|&9O    ‏ش¼
&/^چGky;‚ْ}ك³5¤j>">7&ڑ:­H^Kٍ´R ô0:tُl`yن‌\ِsd   d·0L‍?v[1^0I`ه .=î“V¾ôoْ4ک=kچ€'·b2مFلط¦ؤ‘X.قأژ-Zى‘B%™’&غb5\»
ب98çطاْBْ.هل¸ئ·67¸ôپ©‍P!“G‚ôt%8UQœعµ¦çî•cƒ6f1;g‹س-ڈ±ˆ§>¾Qچ†{p9‰,î»،¶Vx_ب„G‘6Sچ%tٹK­ê»fٌ=—ع  ط÷"،Q—p“bU>ص.8Ye،ai§z؟N%‡³ڑq¨PP|أءىnR<•چƒH«ےR!£PسU:¢¬®Qىو€,آ’ن‌§ىذ'™@J’}ُءo»a³پذs‰ˆàج‌Mhr~نg°ظàccnے< قQWڑ:(GE×ُ¥D¦9,§v?‏¼­جµٍ†ے,X7c؟~Tm!…j§uن‎>زéکM‰ـ!1Y ô F<ہ3ôdں¸”-|>AˆêûV®عر¥–ùؤح?(
ھع‚DّT–û‌"ّكUœk§dŒكë³چ\Xv)t%èMژ¸¤ئ>€Dûkؤ¶Q›”‰اـٹ·لخ(ے>¤'îًcvگO~¨¤J½PEذCپêXs.i‘Kءï÷طوٹSا£†c5ژBھ·ڈ´'‌ —ك3‎])ىI"ھه0Y\ھvIه-N3nحژaثےGè!µè¥hC‎jYLnب5جŒü”
ù£¥Œ`HR~x[ںْWêP¬%”lپ“Wxضچُ´½‘|شّٹ-
 ا
$™ئاعU!ء¥ٌ‰ئoٹrBVچp‹ٹ÷ژحR„0²طسذ5    ²ط5àٍظ€ط‘bkMتظù!û™)¼YژRمٍض_“‏ؤW‎  He/RA´c’pدhëکaز 4j6k‰/إ|Gœ—&EK,,r+ْRص¾ccGنL€بےآ£µطنيق”¸ىrS ذ^è_…kCےMrء¼>tïûW¹¹)£غٍه,"¶k¸-M€P†©G©p“œjب)¾s
°حƒêŒ|5jt`D؛j“ˆ‡\–ڈؤ/e'×–tيظچ¶Hâ’mثد>}
³t¸jq¶أ|G«Géf0M!³kھ ¼XPlLDے:®F’Pˆ¶:ج«ظن‎4J6 MG°V^6غ§¼è¬ثغِ%Œ%ئ  8‌iïك¾*l/PQsaژِہ™L§ںqe*غ؟شƒ؟m_‚لü'شء'»%:v .Weڈgج‡nِہ،fGتژ³I±B-¯ُi/G؟ç·ذ"0+كû\م‏§2†î!q±جw³~v•S2¼x÷^R¦ô+  
جD:5Lï›@QگھôûHG±J”,تy©دL.2­<غَ€ك‹1ـلاY›؛e·÷$ûگuخnم$اW¥!ٍثf€{£%iF)ü—ر^ڑ‰ى8!¸أ~|ufٌأ2Oü}àحتkêëًخFثزLSGq”بRگSڑƒAiHـ3ژLأg¯3ëًn_¸³yJ&)م9‚¨‡o4è†ُN±   ^V£9ھHsYح
a*3ْzMىé®`@ہٹµû#.ةنû؛$K؟ي\]ٍ±^éNح
ح¤ îTKطKëJ'ّرمRَوڈ}ٹ·6ôس(lظp«(يs?°‹(Pwyْ3²Ry/8×MY^[¢v÷tرژ~ٹ-lت$کھ^»·f_C>¢وbî9‚_7‎¨r¢ڑ«
ک0%%Œڑ•‏ذ"ّچ0J6·20£ئà+
طoY!£¬Q$"شي؟üô®œAJ)B"¢1•×ٍ¹8©üô[جً©?‡ڑ!”•-2ٍ@’7§ w%بٍء7ض¤yaإ!aپدrRاNQdhِاِf¶ˆUدق{ط(B>³ٍN†ة­Wًچ?g4
ژ‏<Mئ)رU+¾.س هXoڑ‡ق~£0
0س£حK5چ%¬‎¬ë;سہ´ –Yë6چDP×tسأµ²8z¹U9ظٍؤ:}ل Fضêd¾†o›Fœ×Oے|¬t
 …"’6²“¥أIص؟ب'½|n8œô'\"»!™œ€؛تX1تzڈzطEAًNwj‰êSأ×îhNـ•ـ ‏RSlXs²<µرٹ×<‎1Eت¥mR«3w‏·‰‌t`ي(tّx؛Ss‹#6q°(V=ھi¾ٌ…ں2‡1‍b†r‏R¨‡‹›‚كxE¬¶+â‏Wضa4›غ;¦ھ9H
؛وR’ٹّy5¹:w| 6كg\لˆTكrو‘ِ~™½´9éخ\ٹو‎LŒT@]4­c‍â’ج\°P•lZہSA§9~ V#5U±¦ ئةڈTپ’Yvd.ںَ ھçUI‹Nىج8a*gے7cپلµ„ِ?iUث‌¢½'ر‎Ts-•3‡&™¸²ش
ںض÷ژ7زkWإ·_¶\ˆ_W•ؤ~ˆu.‹2Uي~dجI&‍“ê¾tƒڑCzؤ غ؛µ-=ہـ²ح´ ê3&
)بةِœ¯;
h#IiLk.طs1¼عfMs»\Dًيييmخ‚س› \0«û€µ©؛خ*~¹sJ7@ٌ$‎÷–‚€ïà¢ق§ےvس°H·Miء‘>pْE;›¾د÷–tŒ›،y÷cٹ¥jèë´D(à&™h²z)vuژـF]گں»ù²]Tُ¶£Fôظ ë-¬چثyœڑم~َھرـàS"?ؤ‡VJœ©mù1Œہ‍حe3ˆˆMبgڑچخقزSے{âخêâx
ه‚{¥‎›s:g+خvگك}xهگ*ژk7?ک ûردسآO!{ے?b2‍ِ¹÷ں‚ ^u»  دˆû‹إ´%دج¨e89qïƒV„’ضد[مطڑ؟xF’(IZ?Œ!ق-ذ9
‏­<“T.5»ٍذn»$ـْ™ƒCu^œ`ْ¥X»ٍVى¦ƒM    ˆ.lTٍ:ِقz‰Aـ?§ق“®mD°rDھ5rwAGfءtm}„ü;ھ–dئد*u‡÷پژQ«9iًœƒ±إ3±xëU@<3H.)‚O4³ê­K.9¹ا¶Hّ7طدM­،آgھ‰IقبrعMw¯DLئNNإ
‹gwشBbƒxكEJH)Z¢VGc´هصق¦oؤ„…*±C<”$e!ب©,|9„Fà~µع´دُ_±ن?‏P7Œةaةh;ـأKmôد8‘+ژu‹JO؛_iN?;A† Uعا„¯چ³ھGڈ÷nEë}î÷قyھد^üه
3~$°¬ےj‰بےژدm و+ذ"ف8Vکظ5*:[ص€™pdwW¢±ne,N”¢2_iGS;6…s‹ثکb$-ٌR!طëümُz^W;$8›Jژخj¾Trôèُتھ#ن%°V6¾JSري°êT¨oکT`›!›™XIخ‘·–‎ً|àY‚غل¤¹dWMپآئتˆUTُiـy&Œé°êz éـO¼£±ء„طSê\bO،¸ ]
ˆ¼ش-Hi½سe¤رآt
ل•ٌ'&Bt™–<1UTWrC³‡¤—G½î½)2I‡a§2ذ5×NE/نةgcخ6ZFB‚‌ ¤ô’يQق“âة&wد™¥9‍½/—شhoثظ&rXگN؟tem±?mْ!±ُ»;¨فë""4¨#XOّ
¥fw3س·©„k‎;…àxچ\y¼…ه"Fn=؛ط/t‎ث
ڈ¹ٌ‰f ­F‚nضلFu–¦½8ƒ8‚;O²ي3ف‚^–÷üه¶²ـ­¯¢عMّ9‌s²#د@dy2؟ًj~£ڑ{“/%z¯=éeèِS<*Nن>‎تèüs¼خi گZة؛[R€é"£|*يnp®1ِضiإ†2î°ُ8'0mfں‰êظپط»رô¬ِ¯×N'‍éَéy¦ي·ف›$gس0?B®ëً¼–zX…:؟ً’؛\ù€Hزم¬<¼b6¹&cIى!يç/و‰îدu•#5#م/حي5µ•ـح€—ôdˆ1,Œ¶ïà9!زaح2\سـ/‌ںYgzط™ںضH،‌„z–iث—\Nکn    ڈ؟mے„ڈOlˆWƒ¨‹O•DژنشU|`¹„XDج`ه)´چé•‹Sdi¹x/OCŒ%بگ=YPp£Kفَ¶(ŒگmBکc@Rè<·»[عگ¸“*حIمسز*ط€iھr€m!”ـك¶çشuw¤v/«LہڑEئ+ ث£`حIiO”wf"مâüف<أ3‏–@'ث¬q…2ژf¬z û-سkچJ2rِّلقpKœ§دˆ­F‎èِXz“3«ثئ3کT¥â`ƒ6Œ„چ,>>£êA}’ؤµƒMIzë_nr­…®ْ1ع^ه°é@،o=[J—¨ثü™‏ق‍‰دڈ(~فî1 ب ?e&N†ل؟}:ذ³]ّ‎¢ئضة‏”پٍ5…،]ب3pو‹–XeـHہگyr¶¯8âخ},%‍[ش‍ùع@û¥T%gاu¢Mَح¨تل†U•xu9µŒص{ˆ¬
5²تˆفˆى‘)أع„°h…¬JKK`2طٍح؛€}
س%ق3q é،7Jüç:رTه>ُƒ(†
ث؛C¥¤¦ع°3
إfç²،­r1\ؤىحvئh·ûڈùfµش‰­Jêل}«ض@w¾?+î¯9ظ‘±>‰–ُ’َr3"$¹زF”ص@<]تئ™خ…ى$ز'؛‌?ٹمu)رcô,7ض\trI‏—=·@C’H©(ےCéدا[…j1l
zعg¾›g°ڑM¾ˆ‰ك],\—ً³[M,s¾دGب@ژo{ جj&،e±ى5مètii¾؟Rr°dّ‎ك+ذ@ٌ‘LSùw·µë]pڈ¤×é>;Eé¸ قjûرG•ِنحWإ[è6
"چ
àڈO‎t?؛mڑ©\r"ـ¹W·kو/êM‎â©!èJٌ™è،ڑ{|ƒجْ3ZطçK\Lوôضd*ز÷x°ژ¦%VdQئئ8ctOA›4G,uwu¤ريز.YBv"/-<™µâف¬û‘Lہü$Œ6h÷é=¤ـpڑ‎6ـcٍà£‌ï®çz©A²إ`ں™O-¦¢×
‎ز¹ طکUفKu   حچl/ّl9ہ«"NJ؛<¤±ض3§TŒأ™س>ü²+é¼´
س|ض›/هد€ىù‘…@êڑ¬L±R³…e,!ذêغکù•  ٌ
xˆـ´dpھ½0î'q‍E«بb¦5i3يB؛•ج:ذ' ·Uٍ2و“¼ى¯ك2&ةIـش€?ؤ·OP³ے$بہ#ٌwCHN‚«•(›_ط8ے0®à¯´ہl ط'#“ƒvù ƒuh.ف—ٍڑrwc¯ùR—I9â™u±ژ_؛آœ‰xJ6ƒظ=|’×ِ£آ‰يأe£à>سإ'z¤مبŒوجc›]ed3ïoEô@‘¦Lض©w›3‘ےش\ـٹƒ[ھëîkىˆخPèI›†ع‌I»jُW«ف|µuَi$p\2âYW‚ّm؟*كZ&:آ
سًثِ‏´*ئ«â¾‌e–"ء¤S9–وêT²1WP·‹ظ£@?چôRm÷ëىzإïرPp)3|تvA-ٍ¶zھ6ًbdA‰ك)دهNزمM:[dTW¤—iظٹ»خ…NSVن]srIگٍü‰Jإ÷(]اlE¨7¤dئSèIS™.دفھ|عإîZً²rQ9‘ئ»ق،{5ےlmر°ًطXأ؟َطغض5wauپ´9`^'+    ‹•،
êlظ+ئ<;ô•(1ةî' )•cَث0è‍S'^pک¸¬تسx[ت2ô!dœ    ƒXهTn‚؛°‎ î¹’ئقpü\«6eت}ے4[—œ ‍D†uک»1ïرr*‍w±pضnê0ùyغً®­M³ap‰إ$ه§6“—er|%^|±KںRqh,@*کچVeةـح-ëîôص,ھ&> ô=Œ;ں<ëر^k5Q+¦B¬œ3P’تFسKPeu؟غSX«ٹW]قو³"¯…wkهé[êث†f8²^ِ6FèùN¨}%ه>|نWإ‎,د¦'«Qckژ؟z–"V½A¨ذ)لj<½لخفu‹عگY÷•ïخsƒلغن9ف›sخsزYفïًD2#Sùطلق›ëُفü‎?ˆًّ\؟DٹV#.N>†ةKKFw>I*oض‹Q £^
I½چ•4£¸vj›0؛¹@­مçj’²»جم]“«يپآف¹†ء¶`­ˆ×”اؤa¸KEوnه5ًَ[ُا²X…Wق&]5ى·hثa؟کٌir>ُ“jûew¢€أ‌Voءف?F‹S÷ƒئXڈyè9¾ضة+ل„ot\خ1¬ِU°9ضْqA-àa¤ëh×نsًھs
ùة’…    ؛[‘¥چط
ے¬   0      0          @         ‌  0             <رگخ^C;ق®#و³ڈسdً=عڈ‎©âw2¥ ٍغqم ‚ہأ،³؟ڈŒ»Iy`¶‡ـcب„Xl؟ـûgز؛÷ïـû,w€@éxف8…O   !%ص©@¢0¯
_ھت(W†?#XJ¸l$ّ—Bœٍ^ج¾ج â•&$•فھH°½f)ٍy"Ld'^‹V~‡Wb9”آ3Oه}ےصoC¢¶ص‘~ƒ£ٹ|hIZ&‹0‎‡ںS=‡@]w>1<؛wكرj¬|†}×ص”`#گ"ض¢ـ(ًfKذ‘ڑ÷جv6ï¯چ1„`Pƒف   cG(((‎د?کJءہ$5_,j¦uWإ¶ِe§:‘kفآl¶ضëطY²ش£O#ƒخƒbjي¥بَ¹
†àhTb،ےـ‏FoTP„ىp
ي'ءtپ­¯¹%„ْذzـrِZهغاà„‍pا¾4?4
jژ6Lچî4vًa⻧ع±dق)ع8^ô5`'؛,¤I‍1¾‌ےNW
ˆï`2Rp«ڑ»ة;Xزَ؛;صE:’زم)إهF³NHٌW„k·|=?عœ¹¤­Jîآ   A$«(ك/‡ےسمى؛aZ!Hيكü³‰$ظfYônKë#ڈ:Nt;ا÷َ$éVLœہ‡#YëRءؤ"ـv=%qùT¢لQگ!£
ف¾ْ~]ژث‌ع!eجT¨eكï¬8ükأ¤¤ھط&‍>€2.üˆ< |lD®¬س‚J‰â‡¼غé%"ى´JژU1و>¨¯ôèڑƒî“ث¬ٌjيûغّ…¾ہtt¾M¬^Pش\‍LLے9`6/9خWم²c*8دٍC¨û¼¶شç•&EكµهBاجYpك2 JWٹرµُï؛ِKoصز"}“…‎*Eٹ:kـC&,6­§ے<5ٌ;أé™نپضœ0َ‎bإ³¬o,Y  t9ًey5Z[hIوiذŒهYL‏çغàïؤ%¦“T\ىZ°(²>ےcé^ù¯MH¸گ4ك؟c6Qگ\²;T Gêzjظ†بش:ˆ‹
P"FىhKF~ŒŒU¯C€qفچg}™r‏%"ش؛”>ؤG{VپPل‘§ذ‹9f¢ْه
غYإء•P~غ”­ ‍آHZ¹û³¥وُ‚hk)dYàL?ے¬
endstream
endobj
10 0 obj
<</CropBox[ 8.50394 8.50394 433.096 678.616]/Parent 805 0 R /StructParents 4/Contents 11 0 R /Rotate 0/MediaBox[ 0 0 441.6 687.12]/Resources<</XObject<</Im0 12 0 R /wspe_X1 1676 0 R /wspe_X2 1720 0 R >>/ProcSet[/PDF/ImageB]>>/Type/Page/Annots[ 1771 0 R ]>>
endobj

so i use itextsharp to extract image but not extract JBIG2Decode, and i use FreeImageAPI but not extract , i found this library : https://github.com/devteamexpress/JBig2Decoder.NET but i do not found example to use it all i want is to convert pdf filter JBIG2Decode to normal dot net image, i dot not want a commerical libarary. please help me. thanks for help

Upvotes: 1

Views: 1128

Answers (1)

Hakan Usakli
Hakan Usakli

Reputation: 592

Your OP states "I want to extract all images from pdf"

If that is your primary goal, why complicate things and reinvent the wheel? Your .NET code will probably run slower than the C/C++ library anyways.

Download the XPDF Command line tools from here http://www.xpdfreader.com/download.html or Poppler PDF Library from here https://github.com/oschwartz10612/poppler-windows/releases/tag/v20.12.1-data

both are Command Line tools, GPL or MIT Licence, not commercial library.

Look at pdfimages.exe -help

>pdfimages.exe -help
pdfimages version 20.12.1
Copyright 2005-2020 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : first page to convert
  -l <int>       : last page to convert
  -png           : change the default output format to PNG
  -tiff          : change the default output format to TIFF
  -j             : write JPEG images as JPEG files
  -jp2           : write JPEG2000 images as JP2 files
  -jbig2         : write JBIG2 images as JBIG2 files
  -ccitt         : write CCITT images as CCITT files
  -all           : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : print list of images instead of saving
  -opw <string>  : owner password (for encrypted files)
  -upw <string>  : user password (for encrypted files)
  -p             : include page numbers in output file names
  -q             : don't print any messages or errors
  -v             : print copyright and version info
  -h             : print usage information
  -help          : print usage information
  --help         : print usage information
  -?             : print usage information

extract your Images to file in a temp folder, any format (or convert) and read them from C# as a .NET Bitmap.

Upvotes: 0

Related Questions