Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Gdzie może się przydać? Jeśli chcesz wygenerować gotowe do drukowania plików w aplikacji internetowej, aby uzyskać istniejący arbitralny twardy szablon: certyfikaty, odznaki, pomijanie i tak dalej.

Dlaczego pdf? Format PDF umożliwia tworzenie dokumentów z szeregiem niepodważalnych korzyści: otwartości, między platformą, rozpowszechnieniem i, co jest bardzo ważne, dokładność i nieutomatyzowanie transmisji danych przez łańcuch, przeglądanie i drukowanie.

Jaka jest sól? W użyciu plików SVG jako szablonów z możliwością zastępowania niezbędnych pól, a następnie konwersja do PDF.

Jakie są korzyści? Możliwość tworzenia i szybkiego edycji bardzo złożonych wzorców w zwykłych edytorach wektorowych, takich jak Adobe Illustrator., Corel Draw. lub inkscape. Prostota programowania i używania tylko za darmo oprogramowanie. Inną ważną zaletą jest umiejętność przejrzystego użycia UTF-8 do włożonych tekstów.

Co jest potrzebne? Aby korzystać z tej metody, potrzebujesz dedykowanego serwera z możliwością instalowania aplikacji (inkscape i ghostscript) i polecenia systemowe wykonawcze. W tym przypadku wszystko będzie działać zarówno na platformie Windows, jak iw Linuksie.

Myślę, że krótkie FAQ zapaliły główne pytania ta metodaDlatego natychmiast przejdź do analizy jego istoty.

Jak wiesz, format grafiki wektorowej SVG jest w rzeczywistości plikiem XML, więc plik już utworzył wystarczająco dużo edycji najprostszych narzędzi programistycznych. W przypadku użycia Plik SVG.i jako sztywny szablon proces jest uproszczony czasami, ponieważ Nie musimy zmieniać struktury dokumentu, i trzeba tylko zastąpić żądane wartości tekstowe lub zakodowane w obrazach rastrowych Base64.

Możesz utworzyć początkowy szablon w dowolnym edytorze wektorowym wspierającym eksport do SVG: Adobe Illustrator, Corel Draw lub w samym inkscape. Wykorzystanie tego ostatniego jest pożądane, przynajmniej na ostatnim, konwekcyjnym etapie, ponieważ ostatecznie, to jest on i wyprodukować potrzebną transformację.

Podczas korzystania z rastra w szablonie można użyć metod 2-A, zapisz rastr w oddzielnym pliku zewnętrznym lub osadzone w samym pliku SVG. Jeśli konieczne jest zmianę wzoru rastra w szablonie w pierwszym przypadku, możesz zmienić plik przed generowaniem. Podczas przechowywania wzoru wbudowany w plik, w właściwości URL obiektów obrazu, aby zarejestrować ciąg:

gdzie (obraz) jest pudełkiem do wkładania zakodowanego obrazu Base64 szablonu.

Na przykład wyciągnij prosty wzór odznaka, myślę, że przepraszam za krzywą, nie jestem artystą, ale na prawdziwe użycie, możesz zamówić układ projektant wektora.


Nie użyłem zmiennej obraz rastrowy, pozostawiając go od pracy domowej i ograniczył się tylko do zmiennych pól tekstowych.

Myślę, że już zwróciłeś uwagę na fakt, że w miejscach domniemanych tagów tekstowych szablonu (w ten przykład Używany). Dokładnie za pomocą XML. Kompatybilne znaczniki umożliwia ich przepisanie ich w edytorze wektorowym bez uciekania się do dodatkowej edycji.

Mamy wzór, a bez żadnych problemów będzie w stanie wstawić potrzebne dane, ale ponieważ w rzeczywistości przeprowadzimy transformację? Aby to zrobić, użyj interfejsu wiersz poleceń Inkscape:

# Konwertuj na plik PDF
Inkscape -a.

Korzystanie z klucza " -ZA.»Natychmiast otrzymujemy plik PDF, ale niestety PDF bezpośrednio stworzony przez bezpośrednio duże rozmiary. Aby rozwiązać ten problem, możesz iść dookoła. Mianowicie eksport SVG nie jest bezpośrednio w PDF, ale przez łańcuch Svg-\u003e ps-\u003e pdf. Używanie do formacji końcowej Plik PDF. Narzędzie PS2PDF z zestawu skryptu duchów, możemy zmniejszyć rozmiar ostatniego pliku w dziesiątkach razy.
# Konwersja do pliku PostScript
Inkscape -p.
# Konwersja do pliku PostScript w PDF
Ps2pdf.

Jedynym negatywem jest to, że w tym przypadku stracą wszystkie efekty przejrzystości, ponieważ format PostScript go nie obsługuje.

Aby uzyskać całkowitą tolerancję wygenerowanych dokumentów, możesz dodać opcję Inscape " -T.»Transformacja całego tekstu do krzywych. Dzięki temu możemy pozbyć się problemów w obecności czcionek na maszynie klienta, a także z problemów z kodowaniem.

Teraz mamy wszystko, czego potrzebujesz: SVG Szablon i zespoły transformacji. Piszemy skrypt PHP, który wydałby plik PDF generowany z szablonu.

/* ****************************************************************************************
* Skrypt tworzący plik Plik PDF za pomocą sekwencyjnej konwersji
* Szablon w pliku SVG, po czym jest konwertowany na inkscape pliku PostScript,
* A ta ostatnia jest konwertowana na PDF za pomocą narzędzia PS2PDF.
*
* Autor: Shebasteuk v.v. ZNANY JAKO. Jstingo.
* **************************************************************************************** */

/ * Opcje skryptu * /

// ścieżka do folderu z plikami tymczasowymi
// (jeśli nie określono, pliki będą przechowywane w folderze tymczasowym systemu)
$ Tmp_dir \u003d ""; // Wygeneruj ścieżkę 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, ""); / * FastTemplate * /
zawierać ( "Dołącz / cls_fast_template.php");
$ Tpl \u003d nowy fasttemplate ("szablony"); spróbuj ( / * Blok z danymi uzyskanymi dla szablonu * /
/* ........................... */
$_NAME \u003d "JSTINGO";
$ rejestracja_date \u003d "28/09/2007";
/* ........................... */
/ * Uformuj nazwę pliku wynikowego jako użytkownika_name.pdf * /
$ Pdf_file_name \u003d $ user_name. ".pdf"; / * Przetwarzanie szablonu i odbieranie pliku wynikowego * /$ Tpl -\u003e zdefiniuj (tablica ("svg" \u003d\u003e "szablon.svg"));
$ Tpl -\u003e Przypisz (tablica ("User_name" \u003d\u003e $_N_NAME,
"R_Date" \u003d\u003e $ Register_date
));
$ Tpl -\u003e Parse ("SVG", "SVG"); // Zapisz wynik SVG
$ Tpl -\u003e fastwrite ("svg", $ tmp_svg_file); // wykonujemy konwersję pliku inkscape SVG "A w pliku PS
// Klucze
// -t - służy do konwersji tekstu do krzywych (dla normalnej obsługi czcionki)
// -p - Wskazuje potrzebę konwersji do pliku PostScript
system ( "Inkscape -t $ tmp_svg_file -p $ tmp_ps_file", $ sukces); jeśli ($ sukces! \u003d 0)
rzuć nowy wyjątek ( "Błąd tworzący plik PS".);// Przekształć plik PS do PDF za pomocą narzędzia PS2PDF

// Klucze
// -duseflateCompression \u003d true - Ustawia użycie kompresji
// -dpdfsettings \u003d / drukarka - Ustawia optymalizacja drukowania

system ( "Ps2pdf -duseflatecompression \u003d true -dpdfsettings \u003d / drukarka $ tmp_ps_file $ tmp_pdf_file", $ sukces); // W przypadku nieudanej transformacji tworzymy wyjątek
jeśli ($ sukces! \u003d 0)
rzuć nowy wyjątek ( "Błąd tworzący plik PDF".);// Tytuł, który zmienimy plik PDF
nagłówek ( "Typ treści: Aplikacja / PDF");// klauzula będzie jak $ pdf_file_name
nagłówek ( "Dyspozycja treści: załącznik; nazwa pliku \u003d" ". $ Pdf_file_name. "" "); // Wyślij wygenerowany plik
readfile ($ TMP_PDF_FILE); // Usuń pliki tymczasowe
@ UNLINK ($ TMP_SVG);
@ Unlink ($ tmp_ps_file);
@ Unlink ($ tmp_pdf_file); połów (wyjątek $ e) (
/ * Jeśli wystąpił błąd, a następnie informujemy o tym * /
$ Tpl -\u003e zdefiniuj (tablica ("błąd" \u003d\u003e "ERROR.TPL"));
$ Tpl -\u003e Przypisz ("Błąd", $ E -\u003e GetMessage ()); $ Tpl -\u003e Parse ("Błąd", "Błąd");
$ Tpl -\u003e fastprint ("błąd");
}
?>

Myślę, że każdy nie będzie zbyt trudności z przepisaniem skryptu w innym języku programowania.

Po raz pierwszy spotkałem się z zadaniem generowania dokumentów PDF na stronie dowolny programista (mam nadzieję) rozpocznie drogę z poszukiwaniem gotowych rozwiązań, a mianowicie biblioteki, która zapewni mu te możliwości. Potrzebowałem biblioteki dla PHP, aby nie robić w przyszłości, ponieważ strona pracowała dla PHP. Nadal chciałbym, aby był wolny i wolno swobodnie korzystać z celów komercyjnych. Znalazłem informacje na temat trzeciej opcji:

PDFLIB W wolnej wersji nie obsługuje UTF-8, który jest zły. Z FPDF prawie ta sama historia, więc natychmiast odrzucałem te opcje i nie zawracałem sobie z nimi. Informacje o TCPDF w sieci są dość dużo. Ta biblioteka jest również częścią wielu popularnych CMS.

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

Rozpakuj archiwum. Zobaczymy następującą listę plików i katalogów w katalogu TCPDF:

Cameke Config Doc - Dokumentacja (można wyrzucić do ulgi) Przykłady - można również wyrzucić czcionki obrazy 2dBarcodes.php.php.php htmlColors.php TCPDF.php Unicode_data.php TCPDF.CRT TCPDF.fdf Changelog.txt license.txt readme .tekst

TCPDF Podczas generowania dokumentu zawiera czcionki używane do dokumentu. Te czcionki leżą w katalogu czcionek. Trzy pliki odpowiadają każdej czcionki:

Wift name.php_name.z name_name.ctg.Z.

Czcionki cyrylicy nie ma tego, że jesteśmy zrozumiałe, nie pasuje. Jeśli planujesz użyć w dokumencie cyrylicy, możesz usunąć wszystko z wyjątkiem Helvetica.php, ponieważ jest używany przez domyślną bibliotekę, a foldery UTILS, gdzie wszystko, czego potrzebujesz, aby przygotować czcionki cyrylicy.

Powiedzmy, że potrzebujemy czcionki Arial Normal Design. Bierzemy czcionkę Arial (normalnie) z folderu systemu Windows (na przykład) - plik Arial.ttf - i skopiuj go do folderu czcionek / Utils.

W tym folderze znajduje się narzędzie TTF2ufm, które musimy padać plik arial.ttf:

PHP -Q MakeFont.php Arial.ttf Arial.ufm

Jeśli lokalna maszyna nie tłumacza PHP, możesz wykonać następujący plik na serwerze:

Jeśli "deszcz" wielokrotne pliki i chcesz utworzyć wszystkie czcionki jednocześnie (dla których pliki * .UFM są tworzone), które są dostępne w folderze, rozpocznij huntaltTtfonts.php.

Po operacji tego narzędzia mamy trzy pliki w folderze UTILS: Arial.php, Arial.Z, Arial.CTG.Z, który musimy przejść do folderu czcionek. Pliki arial.ttf i arial.ufm nie są już potrzebne, więc możemy je bezpiecznie usunąć.

W rezultacie przygotowaliśmy czcionkę Arial, która zostanie dołączona do formalnego pliku PDF. Jednak jednocześnie konieczne jest rozważenie, że rozmiar utworzonego dokumentu PDF wzrośnie o rozmiar pliku czcionki arial.z. Konieczne jest również wziąć pod uwagę, że jeśli chcemy uruchomić napisy, będziemy musieli stworzyć oddzielną czcionkę Ariali, a jeśli Bold-Arcials - Arialb.

Nadszedł czas, aby utworzyć nasz dokument.

// Utwórz nowy dokument PDF $ PDF \u003d Nowy TCPDF ("P", "mm", "A4", true, "UTF-8", False);
// Ustaw informacje o dokumencie $ PDF-\u003e SetAuthor ("Twoje imię"); $ Pdf-\u003e osadnik ("nazwa naszego dokumentu");
// Ustaw domyślne dane nagłówka $ PDF-\u003e SetheaderData (PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_String);
// Set Header i Footer Fonts $ PDF-\u003e Setheaderfont (tablica (PDF_Font_name_main, "", PDF_Font_size_main)); $ Pdf-\u003e setfooterfont (tablica (pdf_font_name_data, ", pdf_font_size_data));
// Ustaw Domyślne Monospaceowane czcionki $ PDF-\u003e SetDefaultMonospacedFont (PDF_Font_monospaceed);
// Ustaw marginesy $ PDF-\u003e Setmargins (PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIVE); $ PDF-\u003e SetheaderMargin (PDF_Margin_header); $ Pdf-\u003e setfootermarging (pdf_margin_footer);
// SET Auto Page Breaks $ PDF-\u003e SetAutopageBreak (True, PDF_Margin_bottom);
// Ustaw czcionkę $ PDF-\u003e Setfont ("Times", "Bi", 16);
// Dodaj stronę $ PDF-\u003e Addpage ();
// Wydrukuj linię za pomocą komórki komórkowej () $ PDF-\u003e komórki (0, 12, "Przykład 1", 1, 1, "C");
// Zamknij i wyjście PDF Dokument $ PDF-\u003e Wyjście ("example_1.pdf", "I"); ?

Jest to bardzo prosty przykład. Folder Przykłady Istnieje wiele bardziej złożonych przykładów ilustrujących prawie wszystkie funkcje biblioteki.

Daję również kilka przydatnych linków:

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

    Artykuł, który naprawdę pomógł w moim czasie i materiały, których użyłem podczas pisania tego artykułu

Generowanie dokumentów PDF jest codziennym zadaniem w tworzeniu stron internetowych. Lista takich dokumentów obejmuje konta, koszty ogólne, polityki i inne. Istnieje wiele gotowych bibliotek, aby rozwiązać ten problem, w tym PHP. Na przykład MPDF, TCPDF i wiele innych. Plik można zebrać za pomocą API tych bibliotek, ale jest to raczej długą lekcję. I nie ma czasu na realizację zadania, prawda? Dlatego najczęściej plik PDF jest tworzony z reprezentacji HTML, która jest dość wygodna. Ale niestety nie wszystko jest takie proste. Takie podejście ma wiele pułapek zdolnych do wprowadzenia każdego.

Na przykład:

  • Style nie można podłączać oddzielnie, dlatego muszą być zawarte w dokumencie HTML przez osobną jednostkę lub inline dla każdego elementu. Nie ma w nim nic trudnego, niewielka niedogodność.
  • Niestety, w takich bibliotekach niektóre style nie mogą działać, jak się spodziewasz, lub nie działają zasadniczo. To jest główna wada.
  • Z poprzedniego przedmiotu wynika, że \u200b\u200butworzenie dokumentu jest bardzo odpowiednie, jak to możliwe, a czasami jest po prostu niemożliwe.
  • W przypadku rozwoju pod bitrix jest inny problem. Wszyscy wiedzą, że platforma jest zobowiązana do zainstalowania parametru Mebstring.func_overload do wartości 2. i tworzenie pliku PDF zawierającego cyrylicy, wartość wynosi 0. Zazwyczaj problem jest rozwiązany przez konfigurowanie serwera WWW, ale wciąż nieprzyjemny .

W obliczu ponownie z takim zadaniem, coraz częściej myślę o tym, że generacja plików PDF powinna być zaangażowana w oddzielną mikrovice, zwłaszcza jeśli projekt jest duży, ale jest to zupełnie inna historia.

Nadszedł czas, aby przejść do głównej części tego artykułu. Oprócz opcji proponowanych powyżej istnieje alternatywa - Phantomjs.

Phantomjs jest montażem silnika WebKit bez graficznego interfejsu, który umożliwia pobieranie strony internetowej w trybie konsoli, wykonaj JavaScript, w pełni współpracę z Domem, płótnem i SVG.

Oczywiście, oprócz powyższych możliwości umożliwia utworzenie plików PDF.

W jaki sposób? Mówiąc prostym językiem, ładuje wymaganą stronę internetową i umożliwia zapisanie wyniku jako pliku PDF.

Proces instalacji PhantomJS jest szczegółowo opisany w dokumentacji, więc nie będę mieszkać w tej kwestii.

Ważnym punktem pracy Phantomjs jest plik JS (zwany dalej Config.js), który jej zawartość określa, co chcemy zrobić. Na oficjalnej stronie istnieje wiele gotowych przykładów takich plików, dzięki któremu różne zadania są rozwiązane, na przykład, testowanie jednostek. Wśród przykładów zapisuje stronę internetową w formacie PDF. To jest dokładnie to, czego potrzebujemy.

Para małych edytów pozwoli na ten przykład dla naszych celów.

var strona \u003d wymagać ("strona internetowa"). Utwórz (), system \u003d wymagać ("System"), adres, wyjście, rozmiar; // Jeśli istnieje kilka argumentów lub za dużo, wyświetlany jest komunikat jeśli (system. Args. Długość< 3 || system . args . length > 5) (konsola. Dziennik ( "Zastosowanie: Config.js URL Nazwa pliku"); Konsola. log ( "Papier (wyjście PDF) Przykłady:" 5in * 7,5 do "," 10 cm * 20 cm "," A4 "," litera ""); Konsola. log ( Przykłady "Wyjście obrazu (PNG / JPG):" 1920px "Cała strona, szerokość okna 1920PX"); Konsola. log ( Okno "" 800px * 600px ", przycięte do 800x600"); Fantom. Wyjście (1); ) Inna ( // Przetwarzanie argumentów Adres \u003d system. args [1]; Wyjście \u003d system. Args [2]; Strona. Entuzjaza \u003d (szerokość: 800, wysokość: 800); Jeśli (System. Args. Długość\u003e 3 && System. Args [2]. Substr (- 4) \u003d\u003d\u003d ".pdf") (rozmiar \u003d System. Args [3]. Podziel ("*"); strona. Perfumize \u003d (Rozmiar. Długość \u003d\u003d\u003d 2)? (Szerokość: rozmiar [0], wysokość: rozmiar [1], margines: "0PX"): (Format: System. Args [3], orientacja: "Portret", margines : "1 cm");) ];) // Otwieranie strony i zapisz wynik Strona. Otwórz (jeśli (status! \u003d\u003d "sukces") (konsola. Dziennik ("Nie można załadować adresu!"); Fantom. Wyjdź (1);) inaczej (okno. Settimeout (funkcja (funkcja) (strona. Render ( Wyjście); Phantom. Wyjdź ();), 200);))); )

$ Phantomjs Path / To / Config.js "URL" Ścieżka / do / PDF / plik "A4"

Przeanalizujemy argumenty w porządku:

  1. Ścieżka do config.js.
  2. Adres strony internetowej, którą chcesz przekonwertować na plik PFD.
  3. Ścieżka do pliku PDF, w którym wynik zostanie zapisany.
  4. Format pliku PDF.

Otrzymujemy pożądany plik PDF.

Wracając do PHP, to rozwiązanie jest całkiem łatwe do zintegrowania z kodem.

W najprostszym przypadku wygląda tak:

$ Command \u003d SprintF ("Phantomjs% s% s% s% s", $ FullPathtoconfigjs, $ URL, $ FullPathtosave, $ format); Exec ($ Command);

Więc podsumujmy. Moim zdaniem takie rozwiązanie ma następujące korzyści:

  • Oczyść układ dla takiego dokumentu daleko łatwiej. Jest to bardzo ważne, ponieważ Nie tylko upraszcza rozwój, ale nie zamienia się w koszmar kolejnych edycji dokumentu.
  • Zapewnia potrzebę osiągnięcia za pomocą mbstring.func_overload. Ale to niewątpliwie problem jest charakterystyczny głównie dla bitrix.

Oczywiście są wady:

  • Nie 100% wsparcia dla wszystkich stylów CSS. Ale w porównaniu z bibliotekami wymienionymi na początku sztuki wszystko jest bardzo dobre.
  • To rozwiązanie może przestraszyć początkujący programistę.
03.12.2015

Aby wygenerować plik PDF z HTML, użyjemy biblioteki DOMPDF dla PHP. I wspólnie z nim możemy uzyskać wysokiej jakości pliki PDF z rosyjskich znaków.

Więc postępuj. Najpierw musisz pobrać samą bibliotekę na:

Lub zainstaluj go przez kompozytor:

Kompozytor wymaga dompdf / dompdf

Warto jednak zauważyć, że standardowy zespół nie obsługuje znaków rosyjskojęzycznych. Dlatego musisz wykopać Internet przez długi czas i spróbować, próbując. Aby skrócić swój czas, już zebraliśmy wszystko. Poniżej możesz pobrać bibliotekę z obsługą znaków rosyjskojęzycznych.

Jeśli chcesz użyć standardowego zespołu, po prostu wymień pliki to archiwum (916 KB).

Musisz wymienić pliki w folderze:

../dompdf/lib/fonts.

Dzięki temu skryptowi możesz utworzyć złożone pliki PDF ze tabelami, obrazy, które z HTML wprowadzą do pliku PDF.

Używamy tej biblioteki do generowania PDF z zapytaniem AJAX. W pobranych archiwum znajdziesz plik index.php przetwarzający dane przychodzące, łączy szablon, w którym obrazy są już zbudowane. Rozładowujemy dla Ciebie w pełni pracownika i używamy opcji (5 MB).

Pobierz przykład wygenerowanego pliku PDF (580 KB)

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

Wymagać_once "dompdf / autoload.inc.php";

Lub użyj git:

Git clone https://github.com/dompdf/dompdf.git.
cD DOMPDF.
git clone 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 ..
git Clone https://github.com/phenx/php-svg-lib.git php-svg-lib
cD php-svg-lib
git Checkout V0.3.

Sam przewodnik wygląda tak:

// podłączyć autoloader inclute_once autolad.inc.inc.php; // funkcja do czyszczenia kodu z złośliwej funkcji danych Calsrt ($ Data) ($ Array1 \u003d tablica ("" "," * ","% "," 0x "," & "," 0 "," n ",", "", "", "", "` "," ^ "," $ "," (",") "," [","] : "(", ")", "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ą ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu