DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Gdzie to może się przydać? Jeśli potrzebujesz wygenerować pliki gotowe do druku w aplikacji internetowej zgodnie z już istniejącym dowolnym sztywnym szablonem: certyfikaty, identyfikatory, przepustki itp.

Dlaczego PDF? Format PDF pozwala na tworzenie dokumentów z szeregiem niezaprzeczalnych zalet: otwartością, wieloplatformowością, powszechnością oraz, co bardzo ważne, dokładnością i niezmiennością transferu danych w całym łańcuchu tworzenia, przeglądania i drukowania.

Co to za sól? Używając plików SVG jako szablonów z możliwością zastąpienia wymaganych pól z późniejszą konwersją do formatu PDF.

Jakie są korzyści? Możliwość tworzenia i szybkiej edycji bardzo złożonych szablonów w znanych edytorach wektorowych, takich jak Adobe Illustrator, Corel Draw lub Inkscape. Łatwy w programowaniu i użyciu tylko za darmo narzędzia programowe... Inną ważną zaletą jest możliwość przezroczystego używania UTF-8 do wklejanego tekstu.

Co jest do tego potrzebne? Aby skorzystać z tej metody, potrzebujesz dedykowanego serwera z możliwością instalowania własnych aplikacji (Inkscape i GhostScript) oraz wykonywania poleceń systemowych. W takim przypadku wszystko będzie działać zarówno na platformie Windows, jak i na Linuksie.

Myślę, że krótkie FAQ zawiera podstawowe pytania dotyczące ta metodadlatego od razu zaczniemy analizować jego istotę.

Jak wiesz, format grafiki wektorowej SVG jest w rzeczywistości plikiem XML, więc już utworzony plik można łatwo edytować za pomocą najprostszych narzędzi programistycznych. W przypadku użycia Plik SVGale jako sztywny szablon proces jest znacznie uproszczony, ponieważ nie musimy zmieniać struktury dokumentu, a jedynie podstawiać niezbędne wartości tekstowe lub bitmapy zakodowane algorytmem base64.

Możesz utworzyć początkowy szablon w dowolnym edytorze wektorowym obsługującym eksport do svg: Adobe Illustrator, Corel Draw lub w samym Inkscape. Użycie tego ostatniego jest pożądane, przynajmniej na ostatnim etapie dostrajania, ponieważ ostatecznie to on będzie musiał przeprowadzić transformację, której potrzebujemy.

Używając rastra w szablonie, możesz użyć 2 metod, zapisać raster w oddzielnym pliku zewnętrznym lub osadzić w samym pliku SVG. Jeśli w pierwszym przypadku konieczna jest zmiana obrazu bitmapowego w szablonie, możesz zmienić plik przed wygenerowaniem. Przechowując obraz osadzony w pliku, należy wpisać wiersz we właściwości URL obiektu obrazu:

gdzie (IMAGE) jest polem dla silnika szablonów base64 do wstawienia zakodowanego obrazu.

Na przykład, narysujmy prosty szablon odznaki, myślę, że wybaczysz mi, że jestem krzywy, nie jestem artystą, ale do prawdziwego użytku możesz zamówić układ wektorowy od swojego projektanta.


Nie użyłem mutable bitmapa, pozostawiając to do pracy domowej i ograniczone tylko do zmiennych pól tekstowych.

Myślę, że zwróciłeś już uwagę na fakt, że w miejscach zamierzonego silnika szablonu tekstu wstawiane są tagi (w ten przykład używany). Dokładnie użycie XML kompatybilne tagi umożliwiają zapisanie ich w samym edytorze wektorów bez uciekania się do dodatkowej edycji.

Mamy szablon i bez problemu możemy wstawić potrzebne nam dane, ale jak właściwie przeprowadzimy transformację? Aby to zrobić, użyjemy interfejsu wiersz poleceń Inkscape:

# przekonwertować do pliku PDF
inkscape -A

Korzystanie z klucza „ -ZA»Natychmiast otrzymamy plik PDF, ale niestety plik PDF wygenerowany bezpośrednio ma bardzo duże rozmiary... Aby rozwiązać ten problem, możesz obejść. Mianowicie, aby użyć eksportu SVG nie bezpośrednio do PDF, ale łańcuch SVG-\u003e PS-\u003e PDF... Używany do ostatecznego kształtowania plik PDF narzędzie ps2pdf z pakietu Ghost Script, możemy dziesięciokrotnie zmniejszyć rozmiar końcowego pliku.
# przekonwertować do pliku PostScript
inkscape -P
# konwertować z pliku PostScript do formatu PDF
ps2pdf

Jedyną wadą jest to, że w tym przypadku stracimy wszystkie efekty przezroczystości, ponieważ format PostScript go nie obsługuje.

Aby zapewnić pełną przenośność wygenerowanych dokumentów, możesz dodać do Inscape opcję „ -T»Zamień cały tekst na krzywe. W ten sposób możemy pozbyć się problemów z obecnością czcionek na komputerze klienckim, a także problemów z kodowaniem.

Teraz mamy wszystko, czego potrzebujemy: szablon SVG i polecenia transformacji. Napiszmy skrypt php, który wyświetli plik pdf wygenerowany z szablonu.

/* ****************************************************************************************
* Skrypt do generowania pliku pdf z przepustką przy użyciu konwersji sekwencyjnej
* szablon do pliku svg, po czym jest konwertowany do pliku PostScript przez Inkscape,
*, a ten ostatni jest konwertowany do formatu PDF za pomocą narzędzia ps2pdf.
*
* Autor: V.V. Shebastyuk znany jako. JStingo
* **************************************************************************************** */

/ * parametry skryptu * /

// Ścieżka do folderu z plikami tymczasowymi
// (jeśli nie zostanie określony, pliki zostaną zapisane w systemowym folderze tymczasowym)
$ tmp_dir \u003d ""; // generuje ścieżki do tymczasowych plików svg, ps i pdf
$ tmp_svg_file \u003d tempnam ($ tmp_dir, "");
$ tmp_ps_file \u003d tempnam ($ tmp_dir, "");
$ tmp_pdf_file \u003d tempnam ($ tmp_dir, ""); / * Silnik szablonów FastTemplate * /
zawierać ( „Uwzględnij / cls_fast_template.php”);
$ tpl \u003d new FastTemplate ("templates"); try ( / * Blok z danymi otrzymanymi do tworzenia szablonów * /
/* ........................... */
$ user_name \u003d "JStingo";
$ register_date \u003d "28/09/2007";
/* ........................... */
/ * tworzą nazwę pliku wynikowego w postaci nazwa_użytkownika.pdf * /
$ pdf_file_name \u003d $ user_name. „.pdf”; / * przetwarzanie szablonu i pobranie wynikowego pliku * /$ tpl -\u003e define (array ("svg" \u003d\u003e "template.svg"));
$ tpl -\u003e przypisać (tablica ("USER_NAME" \u003d\u003e $ nazwa_użytkownika,
"R_DATE" \u003d\u003e $ register_date
));
$ tpl -\u003e parse ("SVG", "svg"); // zapisz wynikowy plik svg
$ tpl -\u003e FastWrite ("SVG", $ tmp_svg_file); // przekonwertuj plik svg za pomocą programu inkscape "na plik ps
// Klucze
// -T - służy do konwersji tekstu na krzywe (do obsługi zwykłych czcionek)
// -P - wskazuje na potrzebę konwersji do pliku PostScript
system ( Inkscape -T $ tmp_svg_file -P $ tmp_ps_file, $ sukces); jeśli ($ sukces! \u003d 0)
wyrzuć nowy wyjątek ( „Błąd podczas generowania pliku ps”.);// przekonwertuj plik ps na pdf za pomocą narzędzia ps2pdf

// Klucze
// -dUseFlateCompression \u003d true - ustawia użycie kompresji
// -dPDFSETTINGS \u003d / printer - ustawia optymalizację pod kątem drukowania

system ( "Ps2pdf -dUseFlateCompression \u003d true -dPDFSETTINGS \u003d / printer $ tmp_ps_file $ tmp_pdf_file", $ sukces); // w przypadku nieudanej konwersji wyślij wyjątek
jeśli ($ sukces! \u003d 0)
wyrzuć nowy wyjątek ( „Błąd podczas generowania pliku pdf”.);// nagłówek o wysyłaniu pliku pdf
nagłówek ( „Typ treści: aplikacja / pdf”);// Zostanie nazwany $ pdf_file_name
nagłówek ( "Dyspozycja zawartości: załącznik; nazwa_pliku \u003d" "... $ pdf_file_name. „” ”); // prześlij wygenerowany plik
readfile ($ tmp_pdf_file); // usuń pliki tymczasowe
@ unlink ($ tmp_svg);
@ unlink ($ tmp_ps_file);
@ unlink ($ tmp_pdf_file); catch (wyjątek $ e) (
/ * Jeśli gdzieś wystąpił błąd, zgłaszamy go * /
$ tpl -\u003e define (array ("error" \u003d\u003e "error.tpl"));
$ tpl -\u003e przypisać ("BŁĄD", $ e -\u003e getMessage ()); $ tpl -\u003e parse ("BŁĄD", "błąd");
$ tpl -\u003e FastPrint ("BŁĄD");
}
?>

Myślę, że przepisanie skryptu na inny język programowania nie będzie trudne dla każdego.

Stojąc po raz pierwszy przed zadaniem generowania dokumentów PDF na stronie internetowej, każdy programista (mam nadzieję) rozpocznie swoją podróż od poszukiwania gotowych rozwiązań, czyli biblioteki, która zapewni mu te możliwości. Potrzebowałem biblioteki w PHP, aby nie być sprytnym w przyszłości, ponieważ strona działała w PHP. Chciałbym również, aby był darmowy i umożliwiał swobodne wykorzystywanie go do celów komercyjnych. Znaleziono informacje o 3 opcjach:

PDFLib w darmowej wersji nie obsługuje utf-8, co jest złe. To prawie ta sama historia z FPDF, więc od razu odrzuciłem te opcje i nie zawracałem sobie nimi głowy. W sieci jest wiele informacji o TCPDF. Ta biblioteka jest również zawarta w wielu popularnych systemach CMS.

Istnieją wersje dla PHP4 i PHP5. Potrzebuję pięć.

Rozpakujmy archiwum. W katalogu tcpdf zobaczymy następującą listę plików i katalogów:

Cache config doc - dokumentacja (może być wyrzucona dla ułatwienia) przykłady - można również wrzucić czcionki obrazy 2dbarcodes.php barcodes.php htmlcolors.php tcpdf.php unicode_data.php tcpdf.crt tcpdf.fdf CHANGELOG.TXT LICADENSE.TXT READ

TCPDF zawiera czcionki używane w dokumencie podczas generowania dokumentu. Te czcionki znajdują się w katalogu czcionek. Każdej czcionce odpowiadają trzy pliki:

Font_name.php font_name.z font_name.ctg.z

Nie ma tam czcionek cyrylicy, co oczywiście nam nie odpowiada. Jeśli planujesz używać cyrylicy w swoim dokumencie, możesz usunąć wszystko oprócz helvetica.php, ponieważ jest on domyślnie używany przez bibliotekę i folder utils, w którym znajduje się wszystko, czego potrzebujesz do przygotowania czcionek cyrylicy.

Powiedzmy, że mamy zwykłą czcionkę Arial. Bierzemy czcionkę Arial (style - normal) z folderu systemu Windows (na przykład) - plik arial.ttf - i kopiujemy ją do folderu fonts / utils.

W tym folderze znajduje się narzędzie ttf2ufm, do którego musimy podać plik arial.ttf:

Php -q makefont.php arial.ttf arial.ufm

Jeśli twój lokalny komputer nie ma interpretera PHP, możesz uruchomić następujący plik na serwerze:

Jeśli „zasiliłeś” kilka plików i chcesz wygenerować wszystkie czcionki naraz (dla których utworzono pliki * .ufm) dostępne w folderze, uruchom makeallttffonts.php.

Po uruchomieniu tego narzędzia będziemy mieć trzy pliki w folderze narzędzi: arial.php, arial.z, arial.ctg.z, które będziemy musieli przenieść do folderu z czcionkami. Nie potrzebujemy już plików arial.ttf i arial.ufm, więc możemy je bezpiecznie usunąć.

W efekcie przygotowaliśmy czcionkę Arial, która zostanie dołączona do wygenerowanego pliku PDF. Należy jednak wziąć pod uwagę, że rozmiar generowanego dokumentu PDF zwiększy się w przybliżeniu o rozmiar pliku czcionki arial.z. Trzeba też wziąć pod uwagę, że jeśli chcemy wyświetlić napis kursywą, będziemy musieli stworzyć do tego osobną czcionkę ariali lub pogrubioną czcionką - arialb.

Czas stworzyć nasz dokument.

// utwórz nowy dokument PDF $ pdf \u003d nowy TCPDF ("P", "mm", "A4", prawda, "UTF-8", fałsz);
// ustaw informacje o dokumencie $ pdf-\u003e SetAuthor ("Twoje imię"); $ pdf-\u003e SetTitle ("Tytuł naszego dokumentu");
// ustaw domyślne dane nagłówka $ pdf-\u003e SetHeaderData (PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// ustaw czcionki nagłówka i stopki $ pdf-\u003e setHeaderFont (Array (PDF_FONT_NAME_MAIN, "", PDF_FONT_SIZE_MAIN)); $ pdf-\u003e setFooterFont (Array (PDF_FONT_NAME_DATA, "", PDF_FONT_SIZE_DATA));
// ustaw domyślną czcionkę o stałej szerokości $ pdf-\u003e SetDefaultMonospacedFont (PDF_FONT_MONOSPACED);
// ustaw marginesy $ pdf-\u003e SetMargins (PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $ pdf-\u003e SetHeaderMargin (PDF_MARGIN_HEADER); $ pdf-\u003e SetFooterMargin (PDF_MARGIN_FOOTER);
// ustaw automatyczne podziały stron $ pdf-\u003e SetAutoPageBreak (TRUE, PDF_MARGIN_BOTTOM);
// ustaw czcionkę $ pdf-\u003e SetFont ("czasy", "BI", 16);
// dodaj stronę $ pdf-\u003e AddPage ();
// wydrukuj linię za pomocą Cell () $ pdf-\u003e Cell (0, 12, "Przykład 1", 1, 1, "C");
// Zamknij i wyprowadź dokument PDF $ pdf-\u003e Wyjście ("example_1.pdf", "I"); ?\u003e

To bardzo prosty przykład. Folder z przykładami zawiera wiele bardziej złożonych przykładów, które ilustrują prawie wszystkie możliwości biblioteki.

Podam Ci również kilka przydatnych linków:

    Dokumentacja Joomla TCPDF http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp\u003dtcpdf_docs

    Artykuł, który kiedyś bardzo mi pomógł i którego materiałów użyłem podczas pisania tego artykułu

Generowanie dokumentów PDF to codzienne zadanie w tworzeniu stron internetowych. Lista takich dokumentów obejmuje faktury, faktury, polisy i inne. Istnieje wiele gotowych bibliotek do rozwiązania tego problemu, w tym dla php. Na przykład mpdf, tcpdf i wiele innych. Plik można zbudować za pomocą interfejsu API tych bibliotek, ale jest to dość długie zadanie. A czasu na wykonanie zadania nigdy nie jest za dużo, prawda? Dlatego najczęściej plik pdf jest generowany z widoku html, co jest dość wygodne. Ale niestety nie wszystko jest takie proste. Jest wiele pułapek tego podejścia, które mogą wkurzyć każdego.

Na przykład:

  • Style nie mogą być łączone osobno, dlatego muszą być zawarte w dokumencie html jako osobny blok lub wbudowane dla każdego elementu. Nie ma się czym martwić, drobna niedogodność.
  • Niestety w takich bibliotekach niektóre style mogą nie działać zgodnie z oczekiwaniami lub mogą nie działać w zasadzie. To jest największa wada.
  • Z poprzedniego akapitu wynika, że \u200b\u200bstworzenie dokumentu, który w jak największym stopniu spełnia wymagania, jest bardzo czasochłonne, a czasami jest to po prostu niemożliwe.
  • A w przypadku rozwoju dla Bitrix jest jeszcze jeden problem. Wszyscy wiedzą, że aby platforma działała, parametr mbstring.func_overload musi być ustawiony w php.ini na 2. Aby utworzyć plik pdf zawierający cyrylicę, wymagana będzie wartość 0. Zwykle problem ten rozwiązuje się konfigurując serwer WWW, ale nadal jest nieprzyjemny.

W obliczu takiego zadania po raz kolejny coraz częściej myślę o tym, że w generowaniu plików pdf powinna zajmować się osobna mikrousługa, zwłaszcza jeśli projekt jest duży, ale to już zupełnie inna historia.

Czas przejść do głównej części tego artykułu. Oprócz opcji sugerowanych powyżej istnieje alternatywa - PhantomJS.

PhantomJS to zespół silnika WebKit bez GUI, który umożliwia ładowanie strony internetowej w trybie konsoli, wykonywanie JavaScript oraz pełną pracę z DOM, Canvas i SVG.

Oczywiście oprócz wyżej wymienionych funkcji zapewnia możliwość tworzenia plików pdf.

W jaki sposób? Mówiąc prościej, ładuje wymaganą stronę internetową i umożliwia zapisanie wyniku w pliku pdf.

Proces instalacji PhantomJS jest wystarczająco szczegółowo opisany w dokumentacji, więc nie będę się rozwodził nad tym pytaniem.

Ważnym punktem w pracy PhantomJS jest plik js (dalej config.js), który poprzez swoją zawartość określa, co dokładnie chcemy zrobić. Na oficjalnej stronie znajduje się wiele gotowych przykładów takich plików, za pomocą których rozwiązuje się różnorodne zadania, na przykład testy jednostkowe. Przykłady obejmują zapisanie strony internetowej w formacie pdf. Właśnie tego potrzebujemy.

Kilka drobnych zmian pozwoli nam wykorzystać ten przykład do naszych celów.

var page \u003d require ("strona internetowa"). create (), system \u003d require ("system"), adres, wyjście, rozmiar; // jeśli argumentów jest za mało lub za dużo, zostanie wyświetlony komunikat z pomocą dotyczącą użycia jeśli (system. args. długość< 3 || system . args . length > 5) (konsola. Log ( „Użycie: nazwa pliku URL config.js”); konsola. log ( „przykłady papieru (format PDF):„ 5 cali * 7,5 cala ”,„ 10 cm * 20 cm ”,„ A4 ”,„ Letter ””); konsola. log ( Przykłady obrazów (wyjście png / jpg): cała strona „1920px”, szerokość okna 1920px ”); konsola. log ( Okno „800px * 600px”, przycięte do rozmiaru 800x600 ”); Fantom. wyjście (1); ) else ( // obsługuje argumenty address \u003d system. argumenty [1]; wyjście \u003d system. argumenty [2]; strona. viewportSize \u003d (szerokość: 800, wysokość: 800); if (system. args. length\u003e 3 && system. args [2]. substr (- 4) \u003d\u003d\u003d ".pdf") (size \u003d system. args [3]. split ("*"); page. paperSize \u003d (rozmiar. długość \u003d\u003d\u003d 2)? (szerokość: rozmiar [0], wysokość: rozmiar [1], margines: „0px”): (format: system.args [3], orientacja: „pionowa”, margines : "1cm");) else (console. Log ("Nieprawidłowa ścieżka do pdf!"); Phantom. Exit (1);) if (system. Args. Length\u003e 4) (page. ZoomFactor \u003d system. Args [4 ];) // otwórz stronę i zapisz wynik strona. open (adres, funkcja (stan) (if (status! \u003d\u003d "sukces") (console. log ("Nie można załadować adresu!"); fantom. exit (1);) else (window. setTimeout (function ( ) (page. render (wyjście); phantom. exit ();), 200);))); )

$ phantomjs ścieżka / do / config.js "url" ścieżka / do / pdf / pliku "A4"

Spójrzmy na argumenty w kolejności:

  1. Ścieżka do config.js.
  2. Adres URL strony internetowej, która ma zostać przekonwertowana na plik pfd.
  3. Ścieżka do pliku pdf, w którym zostanie zapisany wynik.
  4. Format pliku PDF.

Otrzymujemy wymagany plik pdf.

Wracając do PHP, to rozwiązanie jest dość łatwe do zintegrowania z Twoim kodem.

W najprostszym przypadku wygląda to tak:

$ command \u003d sprintf ("phantomjs% s% s% s% s", $ fullPathToConfigJS, $ url, $ fullPathToSave, $ format); exec ($ polecenie);

Więc pozwólcie mi podsumować. Moim zdaniem to rozwiązanie ma następujące zalety:

  • Zrób układ dla takiego dokumentu wiele łatwiej. Jest to bardzo ważne, ponieważ nie tylko upraszcza tworzenie, ale także nie sprawia, że \u200b\u200bkolejne edycje dokumentu stają się koszmarem.
  • Eliminuje potrzebę wypaczania z mbstring.func_overload. Ale jest to niewątpliwie problem typowy głównie dla Bitrixa.

Oczywiście są też wady:

  • Brak wsparcia w 100% dla wszystkich stylów CSS. Ale w porównaniu z bibliotekami wymienionymi na początku artykułu wszystko jest bardzo dobrze.
  • Ta decyzja może odstraszyć początkującego programistę.
03.12.2015

Aby wygenerować PDF z HTML, użyjemy biblioteki DomPDF PHP. A wraz z nim będziemy mogli uzyskać wysokiej jakości generowane pliki PDF z rosyjskimi symbolami.

Więc zacznijmy. Najpierw musisz pobrać samą bibliotekę pod adresem:

Lub zainstaluj go przez Composer:

Kompozytor wymaga domeny dompdf / dompdf

Należy jednak zauważyć, że standardowy zestaw NIE obsługuje znaków języka rosyjskiego. Dlatego musisz długo kopać w Internecie i próbować, próbować, próbować. Aby skrócić Twój czas, zebraliśmy już wszystko. Poniżej możesz pobrać bibliotekę z obsługą symboli w języku rosyjskim.

Jeśli chcesz użyć standardowego zespołu, po prostu zastąp pliki z tego archiwum (916 KB).

Będziesz musiał zastąpić pliki w folderze:

../dompdf/lib/fonts

Za pomocą tego skryptu możesz tworzyć złożone pliki PDF z tabelami, obrazami, które zostaną osadzone z HTML w pliku PDF.

Używamy tej biblioteki do generowania plików PDF na żądanie Ajax. W pobranym archiwum znajdziesz plik index.php, który przetwarza przychodzące dane, łączy szablon, w którym obrazy są już osadzone. Wyładowaliśmy w pełni sprawny i wersja, której używamy (5 MB).

Pobierz przykładowy wygenerowany plik PDF (580 KB)

Jeśli pobrałeś bibliotekę, podłącz ją do pliku PHP za pomocą połączenia autoloadera:

Require_once "dompdf / autoload.inc.php";

Lub użyj GIT:

Klon Gita https://github.com/dompdf/dompdf.git
cd dompdf
klon git https://github.com/PhenX/php-font-lib.git lib / php-font-lib
cd lib / php-font-lib
git checkout 0.5.1
płyta CD ..
klon git https://github.com/PhenX/php-svg-lib.git php-svg-lib
cd php-svg-lib
git checkout v0.3

Sam program obsługi wygląda następująco:

// dołącz autoloader include_once "autoload.inc.php"; // funkcja czyszczenia kodu ze złośliwych danych funkcja challsrt ($ data) ($ array1 \u003d array ("\\" "," * ","% "," 0x "," & "," \\ 0 "," \\ n " , "\\ r", "\\ s", "\\ t", "\\\\", "` "," ^ "," $ "," (",") "," [","] "," („,”) ”,„ wss ”,„ blob ”,„ localhost ”,„ - ”,„ Услуги Цены Создание сайта-визитки от 2 499 UAH, от 5 999 RUR (сайт-одностраничник) Создание простого сайта от 3 499 UAH, от 7 999 RUR
(наполнение до 10 страниц без оплаты) Создание интернет-магазина от 5 499 UAH, от 11 999 RUR
(наполнение до 50 товаров – без оплаты) Дополнительные услуги по согласованию с заказчиком Продление доменного имени и хостинга 599 RUR+цена хостинга+цена домена Написание уникальных статей
(не входящих в пакет услуг создания сайта) от 29 UAH, 69 RUR / 1000 символов без пробелов Поддержка сайта первые 14 дней без оплаты Поддержка сайта после 14 дней 749 UAH, 1599 RUR / 30 дней
(если производились действия) Минимальная стоимость хостинга 329 UAH, 719 RUR / 365 дней
[расположение: RU, DE, UA] Минимальная стоимость доменного имени 169 UAH, 399 RUR / 365 дней Подбор доменного имени даром "; //склеиваем все данные $html=$table_one_head.$table.$table_one_down; // если в таблице есть нечитаемые для PDF скрипта символы, то заменяем их на читаемые $html=str_replace("₽","рос. руб.", $html); //убираем пробелы HTML $html=str_replace(" "," ", $html); //генерируем имя файла с уникальным ключем $name=date("Y-m-d-H-i-s").uniqid().".pdf"; //обрабатываем данные с помощью библиотеки DOMPDF $d->loadHtml($html); //устанавливаем ориентацию листа portrait || landscape $d->setPaper("A4","portrait"); //отображаем готовый PDF $d->render(); //записываем PDF в файл file_put_contents(getenv("DOCUMENT_ROOT")."/pdf/{$name}", $d->output()); //можно отправить ответ после AJAX Запроса с ссылкой на файл. у на //echo "

Скачать файл
";

Используемые библиотеки:

  • PDF Rendering
    • CPDF (included with dompdf)
    • PDFLib
  • Font handling if using fonts other than the core PDF fonts (courier, helvetica, times)
    • 0.5.x
  • Document parsing
    • html5lib (included with dompdf)
  • SVG rendering
    • 0.3.x for SVG support

Системные и иные требования:

  • PHP version 5.4.0 or higher
  • DOM extension
  • GD extension
  • MBString extension
  • php-font-lib
  • php-svg-lib

Поддержка:

  • CSS 2.1 и некоторые CSS3 свойства, такие как: @import, @media & @page правила
  • HTML 4.0
  • Внешних стилей http/ftp (с fopen-запросами)
  • tables, вместе с параметрами строк и ячеек, отступов и других стилей для тиблиц
  • изображений (gif, png (8, 24 and 32 bit with alpha channel), bmp & jpeg)
  • простых SVG

PDF24 Creator, это бесплатный PDF генератор для вашего ПК. Генерация PDF файлов невероятно простая задача с этой программой. Комбинация дополнительных возможностей вместе с созданием PDF файлов, делает этот инструмент одной из самых признанных бесплатных программ. В качестве альтернативы вы также можете генерировать PDF онлайн. Прочтите ниже как это работает.

PDF24 Creator – бесплатный PDF генератор

PDF24 Creator, это бесплатный PDF генератор для Windows. Генерация PDF файлов реализована с помощью PDF принтера. После установки в вашей Windows появится новый виртуальный PDF принтер. Просто печатайте через этот принтер все, что хотите превратить в PDF. PDF принтер, это единственный путь создания PDF. Программа включает в себя широкий диапазон возможностей, которые помогут вам в генерации PDF. Эта программа бесплатна. Вы можете скачать свежую версию с этого сайта.

PDF24 Онлайн PDF Генератор – Генерация PDF файлов онлайн

Онлайн PDF Генератор, это полезный инструмент, если вы хотите преобразовать документы в PDF формат. Просто выберите документ или отправьте документ по почте в Онлайн PDF Генератор и через несколько секунд ваш PDF файл будет доступен для скачивания или отправлен вам обратно.

Email интерфейс для этого PDF генератора также доступен. Нужно отправить файлы генератору и дождаться ответного письма, в котором будут файлы, сконвертированные в PDF

Множество других PDF генераторов в инструментарии PDF24

Онлайн утилиты от PDF24 решают многие проблемы, связанные с PDF, достаточно просто, быстро и бесплатно. Многие из этих инструментов генерируют PDF файлы. Вы ещё не знакомы с онлайн утилитами PDF24? Взгляните, вы сможете использовать все эти инструменты.

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu