ďťż
 
 
   [+] html2ps > ps2pdf = html2pdf
 
 

Tematy

 
    
 

 

 

 

[+] 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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis