Convertor online web în pdf cu cuprins. Cum să transformi cu ușurință o pagină web în PDF? Cu ajutorul special

Acasă / Tehnologii
  • Java,
  • PDF
    • Tutorial

    A fost foarte neașteptat pentru mine că în hub-ul Java nu există practic informații despre lucrul cu document PDF Prin urmare, din experiență personală, vreau să folosim exemplul unui servlet pentru a arăta cât de ușor poți transforma orice pagină web într-un document PDF.

    Preambul:
    Să scriem un servlet simplu care va prelua pagina web pe care o specificăm utilizând protocolul HTTP și va genera un document PDF cu drepturi depline pe baza acestuia.
    Biblioteci folosite:
    • Flying Saucer PDF este biblioteca principală care ne va ajuta să creăm un document PDF din HTML/CSS
    • iText este o bibliotecă care este inclusă cu cea descrisă mai sus, dar nu m-am putut abține să nu o includ în lista de biblioteci pentru că... pe această bază va fi generat documentul PDF
    • HTML Cleaner - o bibliotecă care va curăța codul nostru HTML

    Descrieri ale bibliotecilor pentru configurația Maven (pom.xml)

    org.xhtmlrenderer farfurie-zburătoare-pdf 9.0.4 net.sourceforge.htmlcleaner htmlcleaner 2.6.1

    Formarea paginii:
    Una dintre cele mai multe puncte importante este formarea paginii. Faptul este că tocmai din pagina în sine, folosind CSS, sunt setați parametrii viitorului document PDF.

    Să ne uităm la aspect:

    page.jsp

    <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%! private SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); %> Exemplu

    Bună, habr! Ora curentă:<%=sdf.format(new Date())%>
    Pagina noua!


    Aici vreau să subliniez câteva puncte. Primele lucruri în primul rând: toate căile trebuie să fie absolute! Imagini, stiluri, adrese de font etc., căile absolute trebuie specificate pentru orice. Acum să trecem prin regulile CSS (ceea ce începe cu simbolul @).
    @font-face- aceasta este o regulă care va spune generatorului nostru PDF ce font să ia și de unde. Problema este că biblioteca care va genera documentul PDF nu conține fonturi care includ chirilic. De aceea în acest fel va fi necesar să se determine TOATE fonturile care sunt folosite în pagina dvs., chiar dacă este fonturi standard: Arial, Verdana, Tahoma etc., în altfel Riști să nu vezi alfabetul chirilic în documentul tău.
    Acordați atenție proprietăților precum „-fs-pdf-font-embed: embed;” și „-fs-pdf-font-encoding: Identity-H;”, aceste proprietăți sunt necesare, dar nu uitați să le adăugați.
    @pagină- aceasta este o regulă care stabilește indentările pentru un document PDF, precum și dimensiunea acestuia. Aici aș dori să notez că, dacă specificați dimensiunea paginii A3 (și după cum arată practica, acest lucru este adesea necesar, deoarece pagina nu se potrivește în lățime documentului), aceasta nu înseamnă că utilizatorul va trebui să imprime document (dacă se dorește) în format A3, mai degrabă pur și simplu tot conținutul va fi redus/mărit proporțional la dimensiunea dorită (de obicei A4). Aceste. referiți la valoarea proprietății dimensiune sceptic, dar să știi că poate juca un rol cheie pentru tine.
    @media- o regulă care vă permite să creați clase CSS pentru un anumit tip de dispozitiv, în cazul nostru este „print”. În cadrul acestei reguli, am creat o clasă după care generatorul nostru de documente PDF va crea o pagină nouă.
    Servlet:
    Acum să scriem un servlet care ne va returna documentul PDF generat:

    PdfServlet.java

    pachet ru.habrahabr.web_to_pdf.servlets; import org.htmlcleaner.CleanerProperties; import org.htmlcleaner.HtmlCleaner; import org.htmlcleaner.PrettyXmlSerializer; import org.htmlcleaner.TagNode; import org.xhtmlrenderer.pdf.ITextRenderer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; /** * Data: 31.03.2014 * Ora: 9:33 * * @autor Ruslan Molchanov ( [email protected]) */ public class PdfServlet extinde HttpServlet ( privat static final String PAGE_TO_PARSE = "http://localhost:8080/page.jsp"; privat static final String CHARSET = "UTF-8"; @Override protected void service (HttpServletRequest req, HttpServletResponse resp) aruncă ServletException, IOException (încercați ( resp.setContentType("application/pdf")); byte pdfDoc = performPdfDocument(PAGE_TO_PARSE); resp.setContentLength(pdfDoc.length); resp.getOutputStream();write)(pdfDoc(); ). catch (excepție ex) ( resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write(" E ceva în neregulă

    "); ex.printStackTrace(out); ex.printStackTrace(); ) ) /** * Metodă care pregătește un document PDF. * Calea @param către pagină * @return document PDF * @throws Excepție */ byte privat performPdfDocument( String path) aruncă o excepție ( // Obține codul HTML al paginii String html = getHtml(path); // Buffer care va conține codul HTML formatat ByteArrayOutputStream out = new ByteArrayOutputStream(); // Formatare HTML cod /* această procedură este opțională, dar recomand cu tărie folosirea acestui bloc */ HtmlCleaner cleaner = new HtmlCleaner();


    Apropo, nu este deloc necesar să scrieți un servlet în aceste scopuri, puteți transfera logica acestui servlet chiar și într-o aplicație de consolă care va salva documentele PDF în fișiere. După cum probabil ați observat, nu este nevoie să configurați, să modificați, să completați etc. în servlet. (ei bine, cu excepția căii către pagină și, eventual, a codării), în consecință, toată munca de pregătire a unui document PDF este foarte simplă și are loc exclusiv în vizualizare.

    În cele din urmă, ar trebui să ajungeți cu un document PDF care arată cam așa.

    Timp bun tuturor!

    În ciuda faptului că în fiecare browser puteți crea rapid marcaje pentru paginile dvs. preferate, totuși, uneori este foarte necesar să salvați pagina web dorită în PDF (fie doar pentru că această pagină poate fi eliminată sau editată de pe site în timp) ...

    În plus, informațiile din formatul PDF pot fi citite cu ușurință cel mai mult diferite dispozitive(este acceptat de toți cititorii fără excepție), poate fi editat în Word și transferat altor utilizatori. Și pagina în sine nu se va coroda în timp, formatarea și designul acesteia nu se vor schimba. În general, un lucru util și necesar!

    În acest articol voi analiza mai multe moduri prin care puteți face acest lucru rapid și ușor. De fapt, să trecem la treabă...

    Folosind imprimarea prin browser

    1) Indiferent de browser pe care îl aveți (Chrome, Opera, Edge, Firefox etc.), apăsați combinația de butoane Ctrl+P(această combinație înseamnă imprimarea paginii). Această funcție este disponibilă și în meniul browserului.

    2) Apoi, schimbați imprimanta implicită la „Salvare ca PDF” sau „Imprimare Microsoft în PDF” (în funcție de browser și de sistemul de operare - este posibil să aveți diferite opțiuni disponibile: ambele sau doar una dintre ele). Vedeți mai jos câteva capturi de ecran.

    3) Acum setați setările de bază: numărul de pagini de salvat, aspectul paginii, marginile, culoarea, anteturile și subsolurile etc. Apoi faceți clic pe butonul „Imprimare”.

    De fapt, această sarcină este finalizată. Acum, PDF-ul rezultat poate fi deschis în Word, Adobe PDF Reader și sute de alte programe care acceptă acest format.

    Cu ajutorul special extensii

    Pentru cele mai populare browsere, există acum o grămadă de suplimente și extensii diferite care vă permit să salvați paginile preferate ca în stocare în cloud, și în fișiere PDF de pe hard disk.

    Aș dori să subliniez o completare foarte interesantă - PDF MAGE.

    PDF Mage

    Un mic add-on pentru Firefox, Opera, Chrome, care vă permite să salvați întreaga pagină web pe hard disk cu un singur clic!

    Observ că, după ce faceți clic pe pictograma PDF Mage, pagina curentă este pur și simplu descărcată în format PDF în folderul dvs. de descărcare. Pur și simplu este imposibil să-ți imaginezi ceva mai convenabil...

    Vă voi arăta cu un exemplu.

    După instalarea extensiei, veți avea o pictogramă mică în meniu. După ce ați găsit o pagină interesantă, faceți clic stânga pe ea.

    În doar un moment, browserul însuși va începe automat descărcarea fișierului PDF. De fapt, totul se face fără mișcări inutile, rapid și convenabil!

    Utilizarea serviciilor online

    Există, de asemenea, multe servicii de Internet pe Internet care vă permit să salvați rapid orice pagină de pe Internet ca PDF. Esența lucrării este aproximativ următoarea: introduci în special. string adresa URL a paginii pe care trebuie să o salvați.

    Apoi, faceți clic pe butonul pentru a genera un fișier PDF. După un timp, primiți un link pentru a descărca PDF-ul. Desigur, îl puteți folosi, dar în umila mea părere, toate acestea sunt plictisitoare și potrivite pentru utilizare temporară. De exemplu, aveți „probleme” cu browserul sau Windows, ați dat peste o pagină „ciudat” care nu vrea să fie salvată folosind metodele anterioare.

    Și astfel, cele mai populare dintre serviciile de acest fel:

    1. - serviciu simplu și convenabil în limba engleză. Există o specială pe site. o linie în care lipiți adresa URL, iar lângă ea este un buton de generare. La sfârșit, descărcați PDF-ul finalizat pe hard disk.
    2. - un alt serviciu extern care funcționează similar.
    3. - un serviciu foarte popular, cu ajutorul său au fost deja salvate peste 5.000.000 de pagini în toată lumea! Aici, printre altele, puteți descărca suplimente pentru browser (pentru a nu vizita site-ul de fiecare dată când trebuie să salvați pagina).
    4. - un serviciu destul de simplu si convenabil. Un minim de informații inutile pe site.

    Asta e tot pentru mine, succes tuturor!


    De ce trebuie să salvați paginile site-ului? Ei bine, poate doriți să citiți informații offline sau să faceți câteva observații pe site, sau doriți să faceți acest lucru în alt scop. Mie personal nu-mi pasă de ce ai nevoie, doar îți voi spune cum să o faci browsere diferite. Deci, cum puteți salva o pagină de site web în format PDF în browserele Chrome, Opera, Yandex, Firefox?

    Să începem cu browserul Chrome.

    În primul rând, trebuie să găsiți pagina care vă interesează. Voi folosi site-ul auto ax4.ru ca exemplu.

    În colțul din dreapta sus, faceți clic pe ceva ca un sandviș. În meniul care apare, faceți clic pe „ Sigiliu».

    În continuare, veți vedea că implicit este numele imprimantei pe care ați instalat-o sau alta care este programată de browser. Trebuie să-l schimbăm făcând clic pe butonul corespunzător " Schimba».

    Când apăsăm „ Schimba", va apărea un meniu în care trebuie să selectați elementul " Salvați ca PDF».

    După care, în stânga, numele imprimantei se va schimba în „ salvați ca PDF" Tot ce trebuie să faceți este să apăsați butonul „ Salva».

    Selectați o locație de salvare (pentru mine este Desktop-ul).


    Gata, acum poți deschide cele salvate Fișier PDF. S-ar putea să nu arate prea mult, dar puteți copia textul din el foarte ușor.

    Acum deschid fișierul PDF prin Foxit Reader. După cum am menționat mai devreme, puteți folosi un alt program.
    Asta e tot, nu foarte frumos, dar ai înțeles ideea. Puteți crea un fișier PDF de pe orice pagină web.

    Pentru a face acest lucru, voi merge pe site-ul de știri nz1.ru și voi selecta câteva știri.

    După cum ați înțeles deja, procedura este similară în toate browserele. Faceți clic pe asemănarea sandvișului din colțul din dreapta sus, apoi „ În plus" Și " Sigiliu».

    Salvați ca PDF.

    Apoi selectați o locație de salvare. De exemplu, Desktop.

    Deschideți fișierul prin orice program care citește format PDF, folosim.

    Vă voi arăta folosind exemplul unui site cu imagini interesante prikolnie-kartinki.ru.

    ÎN Browser Mozilla Firefox face lucrurile puțin diferit. Faceți clic pe sandvișul din colțul din dreapta sus al ecranului și selectați „ Sigiliu».

    © 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații