|
[+] html2ps > ps2pdf = html2pdf
Sokon - 11-12-2009 01:41
Witam. Walczę i walczę i nie mogę sobie poradzić, zacznę od początku.
Zaszła potrzeba zapisania plików JPG które są skanami do pliku PDF, ale problem polega na tym, że PDF-y muszą być zapisane z tłem będącym wzorem papieru firmowego.
Postanowiłem zaprzęgnąć do pracy PHP zrobiłem skrypt generujący plik HTML zawierający kilka tabel (w zależności od ilości stron) i teraz ten plik HTML chcę zamienić na PDF-a.
Plik HTML składa się wyłącznie z grafik nie zawiera tekstu.
Przykładowy plik HTML wygląda tak:
<html> <head> <title>TITLE</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head>
<body> <table align="center" border="0" cellpadding="0" cellspacing="0" style="page-break-after: always; background-image: url('body_0006.jpg'); height: 3507px; width: 2484px;"> <tr style="background-image: url('header.jpg'); height: 350px; width: 2484px;"><td></td></tr> <tr><td></td></tr> <tr style="background-image: url('footer_01.jpg'); height: 350px; width: 2484px;"><td></td></tr> </table>
<table align="center" border="0" cellpadding="0" cellspacing="0" style="background-image: url('body_0007.jpg'); height: 3507px; width: 2484px;"> <tr style="background-image: url('header.jpg'); height: 350px; width: 2484px;"><td></td></tr> <tr><td></td></tr> <tr style="background-image: url('footer_02.jpg'); height: 350px; width: 2484px;"><td></td></tr> </table> </body> </html>
W konsoli wpisuję następującą komendę:
html2ps plik.html > plik.ps | ps2pdf plik.ps plik.pdf
i w rezultacie otrzymuję pusty jednostronicowy plik PDF.
Czy ktoś ma jakiś pomysł?
pavbaranov - 11-12-2009 07:15
Skoro to grafika, to jakikolwiek program do obróbki grafiki i albo program ten będzie miał funkcję "eksport do PDF" (coraz częściej; w każdej dystrybucji masz OODraw, który - tak jak pakiet OOo - posiada wbudowaną taką funkcję), albo instalujesz pdf dla CUPS (cups-pdf, niekiedy) i po prostu drukujesz, jako drukarkę wybierając PDF. Oczywiście są też różne programiki konsolowe, miewające nazwy *2pdf bądź *topdf umożliwiające przekonwertowanie (także plików graficznych) do pdf.
Sokon - 11-12-2009 11:02
To musi być załatwiane najlepiej z konsoli i na pewno skryptem, mam ponad 300000 skanów (jeden skan = jedna strona) do przerobienia, gdzie jakieś 99% to dokumenty jedno lub dwu stronicowe. Nie widzę jakoś siebie klikającego drukuj na takiej ilości dokumentów ;-)
fnmirk - 11-12-2009 17:28
Po co się bawisz w html? Po pierwsze, kto wykonuje skany w stratnym formacie jakim jest jpg? Nie lepiej skorzystać z formatu png?
Jest taki program jak imagemagick (dostępny w repozytorium). Po zapoznaniu się z kilkoma jego funkcjami uzyskasz to co chcesz.
Więcej na stronie programu: http://www.imagemagick.org/script/index.php http://www.imagemagick.org/script/co...ne-options.php
Sokon - 11-12-2009 18:40
Takie skany dostałem, takie muszę obrobić, ten programik imagemagick wydaje się być mega rozwiązaniem zwłaszcza, że jest obsługiwany z konsoli.
Dzięki z info, to powinno rozwiązać mój problem.
fnmirk - 11-12-2009 19:46
mam ponad 300000 skanów (jeden skan = jedna strona)
Licząc średnią wielkość pliku, w przypadku samego tekstu, o znośnej rozdzielczości na poziomie 1MB to plik wynikowy i tak wyjdzie sporych rozmiarów. Nie wiem czy nie lepiej poświęcić trochę czasu na rozpoznanie tych stron. Ewentualnie spróbować użyć do tego formatu DjVu. http://www.mimuw.edu.pl/polszczyzna/PTJ/djvu.html http://pl.wikipedia.org/wiki/DjVu
Problemy z dużym plikiem pdf mogą wyglądać tak: http://debian.linux.pl/viewtopic.php?t=14875
pavbaranov - 11-12-2009 19:59
Cóż, nie napisałeś, że potrzebujesz czegoś do konsoli i że chodzi o 300tys plików. Oprócz imagemagick, masz - skoro już zrobiłeś jakiegoś htmla - narzędzia typu html2pdf, np. takie: http://linux.softpedia.com/get/Utili...pdf-5265.shtml (gdzie jest strona autorska, nie wiem, nie chce mi się szukać). W sieci znajdziesz też skrypty typu html2pdf.php. Faktem, jak napisał fnmirk - tak z grubsza, to 300000MB na to pójdzie ;)
Sokon - 11-12-2009 21:14
Problem polega na tym, że pliki JPG to głównie skany dokumentów wysyłanych faksem, nawet z przed 10 lat, co za tym idzie tragiczna jakość i rozpoznanie ich (tu zakładam, że chodzi o OCR) jest skazane na porażkę.
Jeden skan (plik JPG) to średnio - 500KB - 600KB Tło jakie muszę dodać do tych skanów (plik JPG) to jakieś 200KB - 250KB Przy dokumencie jedno stronicowym plik PDF wygenerowany ręcznie to 287KB
Pliki wynikowe pojedynczo nie będą duże, bo jeden PDF ma zawierać od 1 do 2 stron, nawet jeżeli łącznie plików PDF będzie 300K przy założeniu oczywiście, że jeden plik ma jedną stronę (co nie jest możliwe) to 287KB * 300000 plików da nam = 86100000KB = 86100MB = 86,1GB
Czyli mamy 300K plików zajmujących łącznie w DUÂŻYM przybliżeniu (dzieliłem przez 1000 a nie 1024) 86,1GB.
To nie takie straszne :-).
[ Dodano: |8 Lut 2010|, 2010 15:33 ] Do rozwiązania problemu zaprzęgnięty imagemagick. Pięknie (jak dla mnie) udokumentowany i w pełni wystarczający do zastosowania w moim projekcie.
fnmirk dzięki za info, temat można zamknąć
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|