PDF-kuvien luku
Lähetetty: 08 Touko 2013, 12:09
PDF-muodossa olevien karttojen lukua on kaivattu pitkään. Versiossa 5.8.1 on nyt mukana pieni lisäys, jolla päästään alkuun. Ideana on yksinkertaisesti muuttaa PDF taustalla rasterikuvaksi erillisellä apuohjelmalla ja lukea sitten sisään normaalina rasterikuvana.
Toiminto on toteutettu Image-rasterimuuntimeen parilla erikoisasetuksella: PdfConverter ja PdfParameter. Muunnin tunnistaa PDF-tiedoston päätteestä, kutsuu PdfConverter-asetuksessa määrättyä apuohjelmaa ja lukee lopuksi apuohjelman muuntaman rasterikuvan elementtilistaan. PdfParameter-asetuksella voidaan määrätä komentorivin parametrit käytettäessä jotain muuta kuin 3D-Winin tuntemaa muunnosohjelmaa. Toiminto tunnistaa kaksi muunnokseen kelpaavaa apuohjelmaa: PdfCreator ja ImageMagick.
Muunnos tehdään PNG-muotoon, joka luetaan normaalisti samalla Image-muuntimella. PNG-muoto on hieman raskas ilmakuvatyyppisille kuville, mutta hyvä viivatyyppisille kartoille. Elementtilistassa tiedosto näkyy tuplapäätteellä *.pdf.png.
Koska muunnetulla rasterikuvalla ei ole tunnettuja koordinaatteja on se asemoitava paikoilleen vastinpisteillä. Useimmissa tapauksissa tämä onnnituu yksinkertaisesti Helmert-laskennalla ja kahdella tunnetulla pisteellä, mutta jos PDF-kuva on syystä tai toisesta venynyt johonkin suuntaan, voidaan joutua käyttämään useampaa vastinpistettä ja affinista muunnosta.
Esimerkki 1, PdfCreator:
HUOM: tämä toimii vain PdfCreatorin vanhalla versiolla 1.7. Uudempi 2.0 ei enää tue komentorivimuunnoksia.
PdfCreator on monella jo valmiiksi asennettuna, koska sitä käytetään paljon PDF-tulosteiden tekemiseen. Se osaa myös muuntaa PDF-tiedostoja rasterikuviksi. Lisätietoja ohjelman asennuksesta ja yleisestä käytöstä 3D-Winin kanssa löytyy ketjusta viewtopic.php?f=16&t=24.
Luodaan uusi rasteritiedoston lukumuunnin funktiolla Image, laitetaan tiedostopäätteeksi *.pdf ja nimeksi vaikkapa PdfCreator. Erikoisasetukseen PdfConverter haetaan ohjelma polkuineen (esim. C:\Program Files (x86)\PDFCreator\PDFCreator.exe).
Tämän jälkeen luku toimii PdfCreatorin oletusasetuksilla, jossa PNG-tarkkuutena näyttää olevan 150 DPI. Jos tuo tuntuu liian karkealta, voi sitä muuttaa PdfCreatorin asetustoiminnosta. Käynnistä PdfCreator ja avaa asetukset valikosta Printer/Options. Sieltä valitaan vasemman reunan puusta kohta Formats/PNG ja vaihdetaan kohtaan Resolution esimerkiksi 300 DPI.
Esimerkki 2, ImageMagick:
ImageMagick on ilmainen ohjelma rasterikuvien käsittelyyn. Sen vahvuutena ovat monipuoliset komentoriviparametrit, joilla muunnosta voidaan ohjata. Ohjelma löytyy seuraavasta osoitteesta:
http://www.imagemagick.org/script/binar ... hp#windows
Sieltä kannattaa ladata käyttöjärjestelmästä riippuen joko "Win32 dynamic at 8 bits-per-pixel"- tai "Win64 dynamic at 16 bits-per-pixel"-versio. Tätä kirjoitettaessa versio näyttää olevan 6.8.5.5 ja esimerkiksi 64-bittinen asennuspaketti nimeltään ImageMagick-6.8.5-5-Q16-x64-dll.exe.
Jotta ImageMagick osaisi käsitellä PDF-tiedostoja, se tarvitsee erillisen Ghostscript-ohjelman. Ohjelma löytyy seuraavasta osoitteesta:
http://www.ghostscript.com/download/gsdnld.html
Sieltä ladataan systeemistä riippuen joko 32- tai 64-bittinen GPL-versio. Tätä kirjoitettaessa uusin 64-bittinen asennuspaketti näyttää olevan nimeltään gs907w64.exe.
Kun ohjelmat on asennettu, luodaan rasteritiedoston lukumuunnin funktiolla Image, laitetaan tiedostopäätteeksi *.pdf ja nimeksi vaikkapa ImageMagick. Erikoisasetukseen PdfConverter haetaan convert-ohjelma polkuineen (esim. C:\Program Files\ImageMagick-6.8.4-Q16\convert.exe).
Oletuksena kuva luodaan tarkkuudella 300 DPI. Jos muunnokseen halutaan vaikuttaa, voidaan PdfParameter-erikoisasetuksella komentoriviä muuttaa. Oletuksena käytetty komentorivi on seuraava:
Parametrit "%1" ja "%2" ovat pakollisia ja tarkoittavat muunnoksen lähtö- ja tulostiedostoa. Parametrilla -density 300 määrätään DPI-tarkkuus eli esimerkiksi arvolla 600 saadaa kaksi kertaa tarkempi rasterikuva.
Muita komentorivioptioita voi tutkia täältä: http://www.imagemagick.org/script/comma ... ptions.php
Jatkokehitys
Tätä on tarkoitus jatkossa kehittää hieman käyttäjäystävällisemmäksi. Esimerkiksi rasteriformaatin, resoluution ja värimäärän asetukset voitaisiin valita suoran listoista. Myös monisivuisten PDF-dokumenttien käsittelyä todennäköisesti tarvitaan.
Toiminto on toteutettu Image-rasterimuuntimeen parilla erikoisasetuksella: PdfConverter ja PdfParameter. Muunnin tunnistaa PDF-tiedoston päätteestä, kutsuu PdfConverter-asetuksessa määrättyä apuohjelmaa ja lukee lopuksi apuohjelman muuntaman rasterikuvan elementtilistaan. PdfParameter-asetuksella voidaan määrätä komentorivin parametrit käytettäessä jotain muuta kuin 3D-Winin tuntemaa muunnosohjelmaa. Toiminto tunnistaa kaksi muunnokseen kelpaavaa apuohjelmaa: PdfCreator ja ImageMagick.
Muunnos tehdään PNG-muotoon, joka luetaan normaalisti samalla Image-muuntimella. PNG-muoto on hieman raskas ilmakuvatyyppisille kuville, mutta hyvä viivatyyppisille kartoille. Elementtilistassa tiedosto näkyy tuplapäätteellä *.pdf.png.
Koska muunnetulla rasterikuvalla ei ole tunnettuja koordinaatteja on se asemoitava paikoilleen vastinpisteillä. Useimmissa tapauksissa tämä onnnituu yksinkertaisesti Helmert-laskennalla ja kahdella tunnetulla pisteellä, mutta jos PDF-kuva on syystä tai toisesta venynyt johonkin suuntaan, voidaan joutua käyttämään useampaa vastinpistettä ja affinista muunnosta.
Esimerkki 1, PdfCreator:
HUOM: tämä toimii vain PdfCreatorin vanhalla versiolla 1.7. Uudempi 2.0 ei enää tue komentorivimuunnoksia.
PdfCreator on monella jo valmiiksi asennettuna, koska sitä käytetään paljon PDF-tulosteiden tekemiseen. Se osaa myös muuntaa PDF-tiedostoja rasterikuviksi. Lisätietoja ohjelman asennuksesta ja yleisestä käytöstä 3D-Winin kanssa löytyy ketjusta viewtopic.php?f=16&t=24.
Luodaan uusi rasteritiedoston lukumuunnin funktiolla Image, laitetaan tiedostopäätteeksi *.pdf ja nimeksi vaikkapa PdfCreator. Erikoisasetukseen PdfConverter haetaan ohjelma polkuineen (esim. C:\Program Files (x86)\PDFCreator\PDFCreator.exe).
Tämän jälkeen luku toimii PdfCreatorin oletusasetuksilla, jossa PNG-tarkkuutena näyttää olevan 150 DPI. Jos tuo tuntuu liian karkealta, voi sitä muuttaa PdfCreatorin asetustoiminnosta. Käynnistä PdfCreator ja avaa asetukset valikosta Printer/Options. Sieltä valitaan vasemman reunan puusta kohta Formats/PNG ja vaihdetaan kohtaan Resolution esimerkiksi 300 DPI.
Esimerkki 2, ImageMagick:
ImageMagick on ilmainen ohjelma rasterikuvien käsittelyyn. Sen vahvuutena ovat monipuoliset komentoriviparametrit, joilla muunnosta voidaan ohjata. Ohjelma löytyy seuraavasta osoitteesta:
http://www.imagemagick.org/script/binar ... hp#windows
Sieltä kannattaa ladata käyttöjärjestelmästä riippuen joko "Win32 dynamic at 8 bits-per-pixel"- tai "Win64 dynamic at 16 bits-per-pixel"-versio. Tätä kirjoitettaessa versio näyttää olevan 6.8.5.5 ja esimerkiksi 64-bittinen asennuspaketti nimeltään ImageMagick-6.8.5-5-Q16-x64-dll.exe.
Jotta ImageMagick osaisi käsitellä PDF-tiedostoja, se tarvitsee erillisen Ghostscript-ohjelman. Ohjelma löytyy seuraavasta osoitteesta:
http://www.ghostscript.com/download/gsdnld.html
Sieltä ladataan systeemistä riippuen joko 32- tai 64-bittinen GPL-versio. Tätä kirjoitettaessa uusin 64-bittinen asennuspaketti näyttää olevan nimeltään gs907w64.exe.
Kun ohjelmat on asennettu, luodaan rasteritiedoston lukumuunnin funktiolla Image, laitetaan tiedostopäätteeksi *.pdf ja nimeksi vaikkapa ImageMagick. Erikoisasetukseen PdfConverter haetaan convert-ohjelma polkuineen (esim. C:\Program Files\ImageMagick-6.8.4-Q16\convert.exe).
Oletuksena kuva luodaan tarkkuudella 300 DPI. Jos muunnokseen halutaan vaikuttaa, voidaan PdfParameter-erikoisasetuksella komentoriviä muuttaa. Oletuksena käytetty komentorivi on seuraava:
Koodi: Valitse kaikki
-density 300 "%1" "%2"
Koodi: Valitse kaikki
-density 600 "%1" "%2"
Jatkokehitys
Tätä on tarkoitus jatkossa kehittää hieman käyttäjäystävällisemmäksi. Esimerkiksi rasteriformaatin, resoluution ja värimäärän asetukset voitaisiin valita suoran listoista. Myös monisivuisten PDF-dokumenttien käsittelyä todennäköisesti tarvitaan.