LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Dove può tornare utile? Se è necessario generare file pronti per la stampa in un'applicazione Web in base a un modello rigido arbitrario esistente: certificati, badge, pass, ecc.

Perché PDF? Il formato PDF consente di creare documenti con una serie di vantaggi innegabili: apertura, multipiattaforma, prevalenza e, cosa molto importante, accuratezza e immutabilità del trasferimento dei dati lungo la catena di creazione, visualizzazione e stampa.

Qual è il sale? Nell'utilizzo di file SVG come modelli con la possibilità di sostituire i campi necessari con successiva conversione in PDF.

Quali sono i vantaggi? La capacità di creare e modificare rapidamente modelli molto complessi in editor vettoriali familiari come Adobe Illustrator, Corel Draw o Inkscape. Facile da programmare e utilizzare solo gratuitamente strumenti software... Un altro importante vantaggio è la capacità di utilizzare in modo trasparente UTF-8 per il testo incollato.

Cosa serve per questo? Per utilizzare questo metodo, è necessario un server dedicato con la possibilità di installare le proprie applicazioni (Inkscape e GhostScript) ed eseguire i comandi di sistema. In questo caso, tutto funzionerà sia su piattaforma Windows che su Linux.

Penso che una breve FAQ abbia coperto le domande di base su questo metodo, quindi, inizieremo subito ad analizzarne l'essenza.

Come sapete, il formato di grafica vettoriale SVG è in realtà un file XML, quindi il file già creato può essere facilmente modificato con i più semplici strumenti di programmazione. In caso di utilizzo File in formato SVGma come modello rigido, il processo è notevolmente semplificato, perché non è necessario modificare la struttura del documento, ma è sufficiente sostituire i valori di testo necessari o le bitmap codificate in base64.

Puoi creare un modello iniziale in qualsiasi editor vettoriale che supporti l'esportazione in svg: Adobe Illustrator, Corel Draw o in Inkscape stesso. L'uso di quest'ultimo è auspicabile, almeno nell'ultima fase di messa a punto, poiché, in ultima analisi, è lui che dovrà operare la trasformazione di cui abbiamo bisogno.

Quando si utilizza un raster in un modello, è possibile utilizzare 2 metodi, memorizzare il raster in un file esterno separato o incorporato nel file SVG stesso. Se nel primo caso è necessario modificare l'immagine bitmap nel modello, è possibile modificare il file prima della generazione. Quando si memorizza un'immagine incorporata in un file, è necessario scrivere la riga nella proprietà URL dell'oggetto immagine:

dove (IMAGE) è il campo per il motore del modello base64 per inserire l'immagine codificata.

Ad esempio, disegniamo un semplice modello di badge, penso che mi perdonerai per essere storto, non sono un artista, ma per un uso reale, puoi ordinare un layout vettoriale dal tuo designer.


Non ho usato mutabile bitmap, lasciandolo per i compiti, ma limitato ai soli campi di testo modificabili.

Penso che tu abbia già prestato attenzione al fatto che nei luoghi del motore del modello di testo previsto sono inseriti i tag (in questo esempio Usato). Esattamente utilizzo di XML i tag compatibili consentono di scriverli nello stesso editor vettoriale senza ricorrere a ulteriori modifiche.

Abbiamo un template, e senza problemi possiamo inserire i dati di cui abbiamo bisogno, ma come effettueremo effettivamente la trasformazione? Per fare ciò, useremo l'interfaccia riga di comando Inkscape:

# converti in file PDF
inkscape -A

Usando la chiave " -UN»Riceveremo immediatamente un file PDF, ma, purtroppo, il PDF generato direttamente ha un file grandi dimensioni... Per risolvere questo problema, puoi andare in giro. Vale a dire, usa l'esportazione SVG non direttamente in PDF, ma a catena SVG-\u003e PS-\u003e PDF... Utilizzato per la modellatura finale file PDF utility ps2pdf dal pacchetto Ghost Script, possiamo ridurre di dieci volte la dimensione del file finale.
# converte in file PostScript
inkscape -P
# converte da file PostScript a PDF
ps2pdf

L'unico inconveniente è che in questo caso perderemo tutti gli effetti di trasparenza, poiché il formato PostScript non lo supporta.

Per la completa portabilità dei documenti generati, puoi aggiungere a Inscape l'opzione " -T»Converti tutto il testo in curve. In questo modo possiamo eliminare i problemi con la presenza di caratteri sulla macchina client, così come i problemi con le codifiche.

Ora abbiamo tutto ciò di cui abbiamo bisogno: modello SVG e comandi di trasformazione. Scriviamo uno script php che restituisca un file pdf generato da un modello.

/* ****************************************************************************************
* Script per la generazione di un file pdf del passaggio utilizzando la conversione sequenziale
* modello in file svg, dopo di che viene convertito in file PostScript da Inkscape,
* e quest'ultimo viene convertito in pdf utilizzando l'utility ps2pdf.
*
* Autore: V.V. Shebastyuk a.k.a. JStingo
* **************************************************************************************** */

/ * parametri dello script * /

// Percorso della cartella con i file temporanei
// (se non specificato, i file verranno archiviati nella cartella temporanea di sistema)
$ tmp_dir \u003d ""; // genera percorsi per file svg, ps e pdf temporanei
$ tmp_svg_file \u003d tempnam ($ tmp_dir, "");
$ tmp_ps_file \u003d tempnam ($ tmp_dir, "");
$ tmp_pdf_file \u003d tempnam ($ tmp_dir, ""); / * Motore di modelli FastTemplate * /
includere ( "Includi / cls_fast_template.php");
$ tpl \u003d new FastTemplate ("templates"); try ( / * Blocco con dati ricevuti per la creazione di modelli * /
/* ........................... */
$ user_name \u003d "JStingo";
$ register_date \u003d "28/09/2007";
/* ........................... */
/ * forma il nome del file risultante nella forma nome_utente.pdf * /
$ nome_file_pdf \u003d $ nome_utente. ".PDF"; / * elaborando il modello e ottenendo il file risultante * /$ tpl -\u003e define (array ("svg" \u003d\u003e "template.svg"));
$ tpl -\u003e assign (array ("USER_NAME" \u003d\u003e $ nome_utente,
"R_DATE" \u003d\u003e $ register_date
));
$ tpl -\u003e parse ("SVG", "svg"); // salva il file svg risultante
$ tpl -\u003e FastWrite ("SVG", $ tmp_svg_file); // converte il file svg usando inkscape "e in un file ps
// Keys
// -T - utilizzato per convertire il testo in curve (per il supporto dei caratteri normali)
// -P - indica la necessità di convertire in file PostScript
sistema ( Inkscape -T $ tmp_svg_file -P $ tmp_ps_file, $ successo); if ($ successo! \u003d 0)
lancia una nuova eccezione ( "Errore durante la generazione del file ps.");// converte il file ps in pdf usando l'utility ps2pdf

// Keys
// -dUseFlateCompression \u003d true - imposta l'uso della compressione
// -dPDFSETTINGS \u003d / printer - imposta l'ottimizzazione per la stampa

sistema ( "Ps2pdf -dUseFlateCompression \u003d true -dPDFSETTINGS \u003d / printer $ tmp_ps_file $ tmp_pdf_file", $ successo); // in caso di conversione non riuscita, lancia un'eccezione
if ($ successo! \u003d 0)
lancia una nuova eccezione ( "Errore durante la generazione del file pdf.");// intestazione sull'invio del file pdf
intestazione ( "Content-type: application / pdf");// Sarà denominato $ nome_file_pdf
intestazione ( "Content-Disposition: attachment; filename \u003d" "... $ nome_file_pdf. "" "); // trasferisce il file generato
readfile ($ tmp_pdf_file); // elimina i file temporanei
@ unlink ($ tmp_svg);
@ unlink ($ tmp_ps_file);
@ unlink ($ tmp_pdf_file); catch (Eccezione $ e) (
/ * Se si è verificato un errore da qualche parte, lo segnaliamo * /
$ tpl -\u003e define (array ("error" \u003d\u003e "error.tpl"));
$ tpl -\u003e assign ("ERRORE", $ e -\u003e getMessage ()); $ tpl -\u003e parse ("ERRORE", "errore");
$ tpl -\u003e FastPrint ("ERRORE");
}
?>

Penso che non sarà difficile per tutti riscrivere lo script in un altro linguaggio di programmazione.

Di fronte per la prima volta al compito di generare documenti PDF su un sito web, qualsiasi programmatore (spero) inizierà il suo viaggio alla ricerca di soluzioni già pronte, ovvero una libreria che gli fornirà queste opportunità. Avevo bisogno di una libreria in PHP, in modo da non essere intelligente in futuro, dato che il sito funzionava in PHP. Vorrei anche che fosse gratuito e ti permettessi di usarlo liberamente per scopi commerciali. Informazioni trovate su 3 opzioni:

PDFLib nella versione gratuita non supporta utf-8, il che è negativo. È quasi la stessa storia con FPDF, quindi ho scartato queste opzioni subito e non mi sono preoccupato di loro. Ci sono molte informazioni su TCPDF in rete. Questa libreria è inclusa anche in molti CMS popolari.

Esistono versioni per PHP4 e PHP5. Mi servono cinque.

Spacchettiamo l'archivio. Nella directory tcpdf, vedremo il seguente elenco di file e directory:

Cache config doc - documentazione (può essere buttata fuori per facilità) esempi - può essere buttata fuori anche font immagini 2dbarcodes.php barcodes.php htmlcolors.php tcpdf.php unicode_data.php tcpdf.crt tcpdf.fdf CHANGELOG.TXT LICADME.TXT READ

TCPDF include i caratteri utilizzati nel documento durante la generazione di un documento. Questi caratteri si trovano nella directory dei caratteri. Tre file corrispondono a ciascun carattere:

Font_name.php font_name.z font_name.ctg.z

Non ci sono caratteri cirillici lì, il che, ovviamente, non ci soddisfa. Se prevedi di utilizzare il cirillico nel tuo documento, puoi eliminare tutto tranne helvetica.php, poiché viene utilizzato dalla libreria per impostazione predefinita e la cartella utils, dove si trova tutto ciò che ti serve per preparare i caratteri cirillici.

Diciamo che abbiamo un carattere normale Arial. Prendiamo il carattere Arial (stile - normale) dalla cartella di sistema di Windows (ad esempio) - il file arial.ttf - e lo copiamo nella cartella fonts / utils.

In questa cartella è presente un'utility ttf2ufm, alla quale dobbiamo alimentare il file arial.ttf:

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

Se la tua macchina locale non ha un interprete PHP, puoi eseguire il seguente file sul server:

Se hai "alimentato" diversi file e vuoi generare tutti i caratteri in una volta (per i quali sono stati creati file * .ufm) disponibili nella cartella, esegui makeallttffonts.php.

Dopo che questa utility funziona, avremo tre file nella cartella utils: arial.php, arial.z, arial.ctg.z, che dovremo spostare nella cartella dei font. Non abbiamo più bisogno dei file arial.ttf e arial.ufm, quindi possiamo eliminarli in sicurezza.

Di conseguenza, abbiamo preparato il carattere Arial, che verrà allegato al file PDF generato. Tuttavia, si dovrebbe tenere conto del fatto che la dimensione del documento PDF generato aumenterà approssimativamente della dimensione del file del font arial.z. È anche necessario tenere in considerazione che se vogliamo visualizzare l'iscrizione in corsivo, avremo bisogno di creare un carattere ariali separato per questo, o se in grassetto - arialb.

È ora di creare il nostro documento.

// crea un nuovo documento PDF $ pdf \u003d new TCPDF ("P", "mm", "A4", true, "UTF-8", false);
// imposta le informazioni sul documento $ pdf-\u003e SetAuthor ("Il tuo nome"); $ pdf-\u003e SetTitle ("Il titolo del nostro documento");
// imposta i dati di intestazione predefiniti $ pdf-\u003e SetHeaderData (PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// imposta i caratteri di intestazione e piè di pagina $ pdf-\u003e setHeaderFont (Array (PDF_FONT_NAME_MAIN, "", PDF_FONT_SIZE_MAIN)); $ pdf-\u003e setFooterFont (Array (PDF_FONT_NAME_DATA, "", PDF_FONT_SIZE_DATA));
// imposta il carattere monospaziato predefinito $ pdf-\u003e SetDefaultMonospacedFont (PDF_FONT_MONOSPACED);
// imposta i margini $ pdf-\u003e SetMargins (PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $ pdf-\u003e SetHeaderMargin (PDF_MARGIN_HEADER); $ pdf-\u003e SetFooterMargin (PDF_MARGIN_FOOTER);
// imposta interruzioni di pagina automatiche $ pdf-\u003e SetAutoPageBreak (TRUE, PDF_MARGIN_BOTTOM);
// imposta il font $ pdf-\u003e SetFont ("times", "BI", 16);
// aggiungi una pagina $ pdf-\u003e AddPage ();
// stampa una riga usando Cell () $ pdf-\u003e Cell (0, 12, "Esempio 1", 1, 1, "C");
// Chiudi e visualizza il documento PDF $ pdf-\u003e Output ("esempio_1.pdf", "I"); ?\u003e

Questo è un esempio molto semplice. La cartella degli esempi contiene molti esempi più complessi che illustrano quasi tutte le capacità della libreria.

Ti darò anche alcuni link utili:

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

    Un articolo che mi ha aiutato molto a tempo debito e di cui ho utilizzato i materiali per scrivere questo articolo

La generazione di documenti PDF è un'attività quotidiana nello sviluppo web. L'elenco di tali documenti include fatture, fatture, polizze e altri. Esistono molte librerie già pronte per risolvere questo problema, incluso per php. Ad esempio, mpdf, tcpdf e molti altri. Il file può essere creato utilizzando l'API di queste librerie, ma questo è un compito piuttosto lungo. E non c'è mai troppo tempo per completare un'attività, giusto? Pertanto, molto spesso il pdf viene generato dalla visualizzazione html, il che è abbastanza conveniente. Ma, sfortunatamente, non tutto è così semplice. Ci sono molte insidie \u200b\u200bin questo approccio che possono far incazzare chiunque.

Per esempio:

  • Gli stili non possono essere collegati separatamente, quindi devono essere inclusi nel documento html in un blocco separato o inline per ogni elemento. Non c'è nulla di cui preoccuparsi, un leggero inconveniente.
  • Sfortunatamente, in tali librerie, alcuni stili potrebbero non funzionare come previsto o potrebbero non funzionare in linea di principio. Questo è il più grande svantaggio.
  • Dal paragrafo precedente risulta che è molto dispendioso in termini di tempo creare un documento che soddisfi i requisiti il \u200b\u200bpiù possibile e talvolta è semplicemente impossibile.
  • E nel caso dello sviluppo per Bitrix, c'è un altro problema. Tutti sanno che affinché la piattaforma funzioni, il parametro mbstring.func_overload deve essere impostato in php.ini a 2. E per creare un file pdf contenente l'alfabeto cirillico, sarà richiesto il valore 0. Solitamente questo problema può essere risolto configurando il server web, ma comunque sgradevole.

Di fronte a un compito del genere, ancora una volta, penso sempre più che un microservizio separato dovrebbe essere coinvolto nella generazione di file pdf, soprattutto se il progetto è di grandi dimensioni, ma questa è una storia completamente diversa.

È ora di passare alla parte principale di questo articolo. Oltre alle opzioni suggerite sopra, esiste un'alternativa: PhantomJS.

PhantomJS è un assemblaggio di un motore WebKit senza una GUI che consente di caricare una pagina Web in modalità console, eseguire JavaScript e lavorare completamente con DOM, Canvas e SVG.

Ovviamente, oltre alle funzionalità sopra elencate, fornisce la possibilità di creare file pdf.

Come? In termini semplici, carica la pagina web richiesta e consente di salvare il risultato come file pdf.

Il processo di installazione di PhantomJS è descritto in modo sufficientemente dettagliato nella documentazione, quindi non mi soffermerò su questa domanda.

Un punto importante nel lavoro di PhantomJS è il file js (di seguito config.js), che dal suo contenuto determina cosa esattamente vogliamo fare. Sul sito ufficiale ci sono molti esempi già pronti di tali file, con l'aiuto dei quali vengono risolte una varietà di attività, ad esempio il test di unità. Gli esempi includono il salvataggio di una pagina web in formato pdf. Questo è esattamente ciò di cui abbiamo bisogno.

Un paio di modifiche minori ci consentiranno di utilizzare questo esempio per i nostri scopi.

var page \u003d require ("webpage"). create (), system \u003d require ("system"), address, output, size; // se ci sono pochi o troppi argomenti, viene visualizzato un messaggio con la guida all'uso if (system. args. length< 3 || system . args . length > 5) (console. Log ( "Utilizzo: nome file URL config.js"); console. registro ( "esempi di carta (output PDF):" 5 pollici * 7,5 pollici "," 10 cm * 20 cm "," A4 "," Lettera ""); console. registro ( "esempi di immagine (output png / jpg):" 1920px "intera pagina, larghezza della finestra 1920px"); console. registro ( Finestra "" 800 x 600 px ", ritagliata a 800 x 600"); fantasma. uscita (1); ) altro ( // gestire gli argomenti indirizzo \u003d sistema. args [1]; output \u003d sistema. args [2]; pagina. viewportSize \u003d (larghezza: 800, altezza: 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 (size. length \u003d\u003d\u003d 2)? (width: size [0], height: size [1], margin: "0px"): (format: system.args [3], orientamento: "portrait", margin : "1cm");) else (console. Log ("Invalid path to pdf!"); Phantom. Exit (1);) if (system. Args. Length\u003e 4) (page. ZoomFactor \u003d system. Args [4 ];) // apre la pagina e salva il risultato pagina. open (address, function (status) (if (status! \u003d\u003d "success") (console. log ("Unable to load the address!"); phantom. exit (1);) else (window. setTimeout (function ( ) (page. render (output); phantom. exit ();), 200);))); )

$ phantomjs percorso / a / config.js "url" percorso / a / pdf / file "A4"

Diamo un'occhiata agli argomenti in ordine:

  1. Il percorso per config.js.
  2. L'URL della pagina web da convertire in un file pfd.
  3. Il percorso del file pdf in cui verrà salvato il risultato.
  4. Formato file PDF.

Otteniamo il file pdf richiesto.

Tornando a php, questa soluzione è abbastanza facile da integrare nel tuo codice.

Nel caso più semplice, assomiglia a questo:

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

Quindi, lasciatemi riassumere. A mio avviso, questa soluzione presenta i seguenti vantaggi:

  • Crea layout per un documento del genere tanto Più facile. Questo è molto importante perché non solo semplifica lo sviluppo, ma inoltre non si trasforma in un incubo nelle successive modifiche al documento.
  • Elimina la necessità di pervertire con mbstring.func_overload. Ma questo è senza dubbio un problema tipico principalmente di Bitrix.

Ovviamente ci sono anche degli svantaggi:

  • Non supporta al 100% tutti gli stili CSS. Ma rispetto alle biblioteche elencate all'inizio dell'articolo, tutto è molto buono.
  • Questa decisione può spaventare uno sviluppatore alle prime armi.
03.12.2015

Per generare un PDF da HTML, useremo la libreria PHP DomPDF. E insieme ad esso saremo in grado di ottenere file PDF generati di alta qualità con simboli russi.

Quindi iniziamo. Per prima cosa devi scaricare la libreria stessa su:

Oppure installalo tramite il compositore:

Il compositore richiede dompdf / dompdf

Tuttavia, va notato che l'assembly standard NON supporta i caratteri in lingua russa. Pertanto, devi scavare in Internet per molto tempo e provare, provare, provare. Per ridurre il tuo tempo, abbiamo già raccolto tutto. Di seguito è possibile scaricare una libreria con supporto per i simboli in lingua russa.

Se si desidera utilizzare l'assembly standard, sostituire semplicemente i file da di questo archivio (916 KB).

Dovrai sostituire i file nella cartella:

../dompdf/lib/fonts

Con questo script puoi creare file PDF complessi con tabelle, immagini, che verranno incorporati da HTML in un file PDF.

Usiamo questa libreria per generare PDF su richiesta ajax. Nell'archivio scaricato troverai il file index.php, che elabora i dati in arrivo, collega il template, in cui sono già incorporate le immagini. Abbiamo scaricato un e completamente funzionante la versione che usiamo (5 MB).

Scarica un esempio del file PDF generato (580 KB)

Se hai scaricato la libreria, collegala al tuo file PHP utilizzando la connessione del caricatore automatico:

Require_once "dompdf / autoload.inc.php";

Oppure usa 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
cd ..
git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib
cd php-svg-lib
git checkout v0.3

Il gestore stesso ha questo aspetto:

// include il caricatore automatico include_once "autoload.inc.php"; // funzione per pulire il codice da dati dannosi function 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? Взгляните, вы сможете использовать все эти инструменты.

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam