Portál AbcLinuxu, 16. června 2025 19:01


Dotaz: Kde se ztrácí bajty při převodu PDF - postscript - PDF?

otula avatar 14.9.2009 19:46 otula | skóre: 45 | blog: otakar | Adamov
Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Přečteno: 502×
Odpovědět | Admin
Trochu teď blbnu s převody mezi postscriptem a PDF a všimnul jsem si jednoho detailu:

když vezmu PDF, vytvořený v Distilleru (jiný jsem zatím nezkoušel, obsahuje množinu použitých fontů), a převedu ho pomocí pdftops na postscript, a potom pomocí ps2pdf zpět na PDF, je výsledná velikost téměř o třetinu menší (než původní PDF).

Nemáte někdo tušení, o jaká data jsem během toho převodu přišel? (nebo je snad použita o tolik lepší komprese?)
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.9.2009 20:28 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Odpovědět | | Sbalit | Link | Blokovat | Admin
To já nevím - musíš se do toho souboru kouknout :-) ale tipnu si o vložené fonty ?
otula avatar 14.9.2009 21:05 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
To budu muset spíš otestovat prakticky s nějakými fonty, které nemám všude, protože do PDF souboru se kouká docela špatně. V tom ps souboru by teoreticky ty fonty být měly:
man pdftops: ...By default, any TrueType fonts which are embedded in the PDF file are copied into the PostScript file...
a jsou tam nějaké takové bloky:
pdfMakeFont
%%BeginResource: font NLLAGK+TT5B4o00
%!FontType1-1.0: NLLAGK+TT5B4o00
12 dict begin
/FontInfo 10 dict dup begin
/isFixedPitch false def
/ItalicAngle 0 def
/UnderlinePosition -100 def
/UnderlineThickness 50 def
end readonly def
/FontName /NLLAGK+TT5B4o00 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.00048828 0 0 0.00048828 0 0] readonly def
/FontBBox [0 -15 789 915] readonly def
/StrokeWidth 0 def
/Encoding StandardEncoding def
currentdict end
currentfile eexec
5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62
BD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68
V PDF jsou části, které by snad mohly být těmi fonty, ale těžko posoudit:
/Type/FontDescriptor/FontName/EMTSFX+TT5BCo00/FontBBox[-2 -13 773 733]/Flags 131104
/Ascent 733
/CapHeight 733
/Descent -13
/ItalicAngle 0
/StemV 115
/XHeight 533
/CharSet(/A/C/O/aacute/ccaron/d/e/eacute/ecaron/h/iacute/k/l/n/o/s/space/t/u)/FontFile3 356 0 R>>
endobj
356 0 obj
<</Filter/FlateDecode
/Subtype/Type1C/Length 2032>>stream (a začne binární havěť)
Jsou to takové dohady, které se dají různě zkoušet. Tak trochu jsem doufal, že by ten dotaz zhlédnul někdo, kdo do této problematiky "trochu více vidí". Pokud by se neztratila žádná důležitá informace, mohl by to být zajímavý způsob "komprese" PDF souborů.
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
14.9.2009 21:56 radek
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
V dnesni dobe, kdy maj disky velikost desitky MB(ne neni to preklep) se vyplati zkomprimovat PDF o velikosti 1MB na velikost 700KB :)
otula avatar 14.9.2009 22:39 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Sice jsem nepochopil, kam tím (desítky MB) míříš, ale stran úspory nejde o místo na disku, ale hlavně o přenos po internetu. Mnoho lidí používá šílené CDMA modemy, kde se rozdíl několika stovek kB citelně pozná.

A jinak je tvá reakce v této diskuzi OT, protože dotaz byl mířen na příčinu snížení datového objemu.
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
15.9.2009 00:25 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
nevim o tom ani zbla, ale ... co Ti brani udelat z toho noveho pdf zase postscript a porovnat ty. Tim aspon zjistis, jestli ke ztrate doslo pri prevodu pdf>ps nebo obracene (neocekavam, ze kazdy prevod usetri 1/3 dat opakovane :-D )
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
otula avatar 15.9.2009 11:57 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Zatím jsem neměl čas studovat rozdíly mezi těmi 2 ps soubory, ale zjistil jsem, že inculdované fonty zůstanou zachovány. Ale abych neměl moc velkou radost, tak se mi u 4stránkového testovacího dokumentu "poštěstilo", že při převodu PDFtoPS mi první stránku zrastroval, zatímco zbylé 3 zůstaly ve vektorech - což je velmi nepříjemný detail, protože se z toho stává sázka do loterie :-/
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
15.9.2009 08:26 ondra
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?

Embedované fonty (v pdf) by snad šlo zobrazit v acrobat readeru.

15.9.2009 12:12 Ivan
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Odpovědět | | Sbalit | Link | Blokovat | Admin

 Pri prevodu do PS minimalne muzes prijit o text. V tom novym PDF nepujde vyhledavat. Jinak PDF obsahuje v sobe dva jazyky jeden pro popis struktury dokumentu(stranky crossreference table, seznamy tabulek, ...) a druhej pro popis stranky. Ten prvni je vzdy textovej. Ten druhej je taky textovovej ale v PDF je komprimovan nejakym kompresnim algoritmem - typicky se pouziva zlib, ale moznych kompresnich algoritmu je nekolik. Prevod z PDF -> PS temer vzdy  operace ktera ztrati nejakou informaci. Takze se neni cemu divit.

 

otula avatar 15.9.2009 12:28 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Mockrát díky za odpověď. Ta ztráta schopnosti vyhledávat je velmi zajímavá informace. Zjišťuji, že je to celé jeden velký bludný kruh, protože psutils jsou kompatibilní jen s malou množinou ps souborů, obejít to lze tím, že se ps soubory získají převodem z PDF, ale při tom se zase objevují jiné problémy...
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
15.9.2009 14:07 Ivan
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?

 Pozor - existuji dva typy konverzi PDF -> PS -> PDF (tahle konverze moc smysl nema) ale druha konverze PS -> PDF -> PS je velice uzitecna. psutils nebo mpage predpokladaji na vstupu neco jako "well formed ps", ted uz se presne nepamatuju jaky vsechny pominky se na tenhle format kladou. Problem je, ze vystupem v psutils neni "well formed ps". Pokud vim tak jeste neexistuje zadna open-source utilita ktera ktera by umela PS "opravit". Par takovych utilit jsem videl a byly velice drahe a pouzivaly se pro preprocessing pro velkokapacitni tiskarny. Jedinym "rozumnym" resenim jak "spravit" PS je konverze do PDF a nasledny "tisk" do postscriptu z acrobat readeru. Starsi verze acrobatu na to mely parametr, takze se to da pouzit i ve scriptu.

 

otula avatar 15.9.2009 14:50 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
PDF -> PS -> PDF (tahle konverze moc smysl nema)
Já jsem k této konverzi přišel "díky" InDesignu ve verzi 2 (postupně zjišťuji, že v této praverzi kromě exportu brožury chybí další praktické fičury). Umí přímo exportovat pdf a eps bez toho, že by byl výsledek ovlivněn například minimálními okraji nějaké tiskárny.

Původní snahou ale bylo "vytisknout" do souboru ps soubor, tento protáhnout přes psbook a psnup, abych dostal listy A4, seskládané do bružury. Narazil jsem na nekompatibilitu takto vytvořeného ps souboru s psnup. Pak jsem přišel na to, že když vezmu prakticky libovolný PDF soubor a protáhnu ho pdftops, tak získám postscriptový soubor, který už kompatibilní je. Takže tato konverze potom smysl nabude:

PDF -> PS -> úpravy -> PDF

Pro mne by byla konverze PS -> PDF -> PS jen článkem navíc (pokračovala by -> úpravy -> PS -> PDF)
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
15.9.2009 12:44 PM
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hm, a nemuze byt problem i v kompresi obrazku? Tedy treba bitmapa v puvodnim PDF a JPEG kvalita 80% v novem?
otula avatar 15.9.2009 15:11 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Velmi dobrý tip.

Při převodu ps2pdf skutečně proběhne okem viditelná změna komprese fotek. Takže bude asi dobré prozkoumat parametry. Převod pdftops fotky ponechá v původní kvalitě (jediným podkladem k tomuto mému tvrzení je pozorné porovnání fotografií při 800% velikosti)
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
otula avatar 15.9.2009 18:49 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Kde se ztrácí bajty při převodu PDF - postscript - PDF?
Pokud by to někoho zajímalo, tím správným (a celkem blbě dohledatelným) parametrem je -dPDFSETTINGS=/prepress
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.