Skaluj HTML proporcjonalnie, aby pasował dokładnie do formatu PDF A4

Używam PHP, Mysql, jQuery. Mam stronę internetową, która ma zostać przekonwertowana na format A4 w formacie pdf: http://optisolbusiness.com/funeral_site/sample/index/id/255 .

Przekonwertowałem HTML na PDF za pomocą wkhtmltopdf, co działa świetnie.

Oto wygenerowany PDF http://optisolbusiness.com/Guru/Gurupdf/optisol.pdf . ale HTML nie pasuje dokładnie do rozmiaru PDF; istnieją spacje wokół HTML w PDF. Jak przeskalować HTML, aby pasował do formatu A4 PDF 100%? Co ważne zawartość wewnątrz html (ie) rozmiar tekstu, szerokość i wysokość obrazów, obrazy tła również być skalowane proporcjonalnie.

Author: halfer, 2012-10-12

3 answers

Twój obraz tła nie jest dokładnie wysokiej rozdzielczości, to nie będzie wyglądać dobrze w druku.

Nie znam samego wkhtmltopdf, ale twoje ciało ma już ustalone wymiary absolutne (w calach). To prawdopodobnie jest problem. Twoje ciało ma maksymalny rozmiar, zawartość ma również rozmiar absolutny (ze względu na wymiary w pikselach obrazu tła).

Nie jest to dobry punkt wyjścia dla transformacji html-to-print, a PDF to zasadniczo drukowanie.

Co robić (intermediate)

  • usuń wszelkie ograniczenia rozmiaru z ciała
  • wkhtml... posiada przełącznik o nazwie zoom, 1.5 powinna być odpowiednia wartość do wypełnienia strony
  • użyj strony-rozmiar a4

Co robić ("właściwy" sposób)

  • Usuń ograniczenia rozmiaru z ciała
  • budowanie obramowań tła (czarnych) z elementami html i stylami css
    • powstrzymaj się od definiowania reguł "szerokości" dla tych. Będziesz musiał tylko zdefiniuj raz "szerokość", wszystkie pozostałe szerokości powinny być ustawione na "auto".
    • wysokości okażą się kłopotliwe, ponieważ div są tylko tak wysokie, jak ich zawartość wymaga. Ale ustawienie wysokości: 100% nie uwzględnia rozmiaru obramowania i marginesu.
  • Ten żółty krzyż może być również zaprojektowany w css lub znacznie wyższej rozdzielczości png / jpeg [14]}
  • używaj tylko" rzeczywistych " wymiarów. Oznacza to, że nie używaj pikseli, punktów, cali lub mm. możesz użyć wartości%, ale upewnij się, że są one % wartości rzeczywistych wymiarów (co oznacza, że w pewnym momencie element nadrzędny ma rzeczywisty wymiar)
 7
Author: dualed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-12 13:06:38

Powiedziałbym, że zawsze będziesz się starał, aby to było idealne. Moim zdaniem lepiej napisać plik PDF bezpośrednio, niż polegać na narzędziu innej firmy.

Rozważ zajrzenie do FPDF , open-source PHP PDF writing library. Uwaga, strona wygląda nieaktualnie, ale funkcjonalność działa pięknie.

 2
Author: Rob Forrest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-12 11:22:09

Możesz ustawić rozmiar treści na rozmiar strony.. w przypadku formatu A4 o wymiarach 210x297mm.

Btw: powinieneś używać tylko szerokości w procentach, w przeciwnym razie wkhtmltopdf będzie musiał spróbować ją przekonwertować.

Więc upewnij się, że używasz width: 100%;, jeśli chcesz, aby wypełnić cały pokój. ;)

BTW: jeśli chcesz mieć naprawdę wysokiej jakości pliki PDF, musisz je utworzyć zgodnie ze standardem PDF/X-3 . Nie wydaje mi się, żeby wkhtmltopdf tak było.

 0
Author: Gung Foo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-12 10:51:22