Online prevodník webu na pdf s obsahom. Ako jednoducho zmeniť webovú stránku na PDF? S pomocou špeciálnych

Domov / technológie
  • Java,
  • PDF
    • Návod

    Bolo pre mňa veľmi neočakávané, že v centre Java nie sú prakticky žiadne informácie o práci PDF dokument Preto z osobnej skúsenosti chcem na príklade servletu ukázať, ako ľahko môžete zmeniť akúkoľvek webovú stránku na dokument PDF.

    preambula:
    Napíšme si jednoduchý servlet, ktorý zoberie nami zadanú webovú stránku cez HTTP protokol a na jej základe vygeneruje plnohodnotný PDF dokument.
    Použité knižnice:
    • Flying Saucer PDF je hlavná knižnica, ktorá nám pomôže vytvoriť PDF dokument z HTML/CSS
    • iText je knižnica, ktorá je súčasťou vyššie opísanej knižnice, ale nemohol som si pomôcť a nezaradil som ju do zoznamu knižníc, pretože... na tomto základe sa vygeneruje PDF dokument
    • HTML Cleaner – knižnica, ktorá nám vyčistí HTML kód

    Popisy knižníc pre konfiguráciu Maven (pom.xml)

    org.xhtmlvykresľovač lietajuci tanier-pdf 9.0.4 net.sourceforge.htmlčistič htmlčistič 2.6.1

    Tvorba stránky:
    Jeden z najviac dôležité body je vytvorenie stránky. Faktom je, že zo samotnej stránky sa pomocou CSS nastavujú parametre budúceho PDF dokumentu.

    Pozrime sa na rozloženie:

    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"); %> Príklad

    Ahoj habr! Aktuálny čas:<%=sdf.format(new Date())%>
    Nová stránka!


    Tu by som chcel zdôrazniť niekoľko bodov. Najprv prvé veci: všetky cesty musia byť absolútne! Obrázky, štýly, adresy písma atď., pre všetko musia byť uvedené absolútne cesty. Teraz si prejdeme pravidlá CSS (čo začína symbolom @).
    @font-face- toto je pravidlo, ktoré nášmu generátoru PDF povie, aké písmo a odkiaľ vziať. Problém je v tom, že knižnica, ktorá vygeneruje dokument PDF, neobsahuje písma, ktoré obsahujú azbuku. Preto bude potrebné týmto spôsobom určiť VŠETKY písma, ktoré sa používajú na vašej stránke, aj keď sú štandardné písma: Arial, Verdana, Tahoma atď., v inak Riskujete, že vo svojom dokumente neuvidíte azbuku.
    Venujte pozornosť vlastnostiam ako "-fs-pdf-font-embed: embed;" a "-fs-pdf-font-encoding: Identity-H;", tieto vlastnosti sú potrebné, len ich nezabudnite pridať.
    @stránka- toto je pravidlo, ktoré nastavuje odsadenia dokumentu PDF, ako aj jeho veľkosť. Tu by som rád poznamenal, že ak zadáte veľkosť strany A3 (a ako ukazuje prax, je to často potrebné, pretože strana sa na šírku nezmestí do dokumentu), neznamená to, že používateľ bude musieť vytlačiť dokument (ak je to potrebné) vo formáte A3, jednoducho sa celý obsah proporcionálne zmenší/zväčší na požadovanú veľkosť (zvyčajne A4). Tie. odkázať na hodnotu nehnuteľnosti veľkosť skeptický, ale vedzte, že pre vás môže hrať kľúčovú úlohu.
    @media- pravidlo, ktoré umožňuje vytvárať CSS triedy pre konkrétny typ zariadenia, v našom prípade je to „tlač“. V rámci tohto pravidla sme vytvorili triedu, po ktorej náš generátor PDF dokumentov vytvorí novú stránku.
    Servlet:
    Teraz napíšme servlet, ktorý nám vráti vygenerovaný PDF dokument:

    PdfServlet.java

    balík 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; /** * Dátum: 31.03.2014 * Čas: 9:33 * * @author Ruslan Molchanov ( [chránený e-mailom]) */ public class PdfServlet rozširuje HttpServlet ( súkromný statický konečný reťazec PAGE_TO_PARSE = "http://localhost:8080/page.jsp"; súkromný statický konečný reťazec CHARSET = "UTF-8"; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) vyvolá ServletException, IOException ( try ( resp.setContentType("application/pdf"); byte pdfDoc = performPdfDocument(PAGE_TO_PARSE); resp.setContentLength(pdfDoc.length); resp.getOutputStream().write()pdfDoc] catch (exception ex) ( resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write(" Niečo nie je v poriadku

    "); ex.printStackTrace(out); ex.printStackTrace(); ) ) /** * Metóda, ktorá pripraví dokument PDF. * @param cesta cesta k stránke * @return PDF dokument * @throws Exception */ private byte performPdfDocument(String path) vyvolá výnimku ( // Získanie HTML kódu stránky String html = getHtml(cesta); // Buffer, ktorý bude obsahovať naformátovaný HTML kód ByteArrayOutputStream out = new ByteArrayOutputStream(); // Formátovanie HTML kód /* tento postup je voliteľný, ale dôrazne odporúčam použiť tento blok */ HtmlCleaner cleaner = new HtmlCleaner();


    Mimochodom, na tieto účely nie je vôbec potrebné písať servlet, logiku tohto servletu môžete preniesť aj do konzolovej aplikácie, ktorá uloží PDF dokumenty do súborov. Ako ste si mohli všimnúť, v servlete nie je potrebné konfigurovať, meniť, pridávať atď. (s výnimkou cesty k stránke a prípadne kódovania), preto je všetka práca na príprave dokumentu PDF veľmi jednoduchá a vyskytuje sa výlučne v zobrazení.

    Nakoniec by ste mali skončiť s dokumentom PDF, ktorý vyzerá asi takto.

    Dobrý čas všetkým!

    Napriek tomu, že v každom prehliadači môžete rýchlo vytvárať záložky pre svoje obľúbené stránky, niekedy je však veľmi potrebné uložiť požadovanú webovú stránku do PDF (iba preto, že táto stránka môže byť časom odstránená alebo upravená z lokality) ...

    Navyše, na väčšine sa dajú ľahko prečítať informácie z formátu PDF rôzne zariadenia(podporujú ho všetky čítačky bez výnimky), dá sa upravovať vo Worde a preniesť na iných používateľov. A samotná stránka nebude časom korodovať, nezmení sa jej formátovanie a dizajn. Vo všeobecnosti užitočná a potrebná vec!

    V tomto článku sa pozriem na niekoľko spôsobov, ako to urobiť rýchlo a jednoducho. Vlastne, poďme na vec...

    Pomocou tlače z prehliadača

    1) Bez ohľadu na to, aký máte prehliadač (Chrome, Opera, Edge, Firefox atď.), stlačte kombináciu tlačidiel Ctrl+P(táto kombinácia znamená tlač stránky). Táto funkcia je dostupná aj v menu prehliadača.

    2) Ďalej zmeňte predvolenú tlačiareň na „Uložiť ako PDF“ alebo „Microsoft Print to PDF“ (v závislosti od vášho prehliadača a operačného systému – môžete mať k dispozícii rôzne možnosti: obe alebo len jednu z nich). Pozrite si pár snímok obrazovky nižšie.

    3) Teraz nastavte základné nastavenia: počet strán na uloženie, rozloženie strany, okraje, farbu, hlavičky a päty atď. Potom kliknite na tlačidlo „Tlačiť“.

    V skutočnosti je táto úloha dokončená. Teraz je možné výsledný súbor PDF otvoriť v programe Word, Adobe PDF Reader a stovkách ďalších programov, ktoré podporujú tento formát.

    S pomocou špeciálnych rozšírenia

    Pre najpopulárnejšie prehliadače je teraz k dispozícii množstvo rôznych doplnkov a rozšírení, ktoré vám umožňujú ukladať obľúbené stránky ako cloudové úložisko a do súborov PDF na pevnom disku.

    Chcel by som vyzdvihnúť jeden veľmi zaujímavý doplnok - PDF MAGE.

    PDF mág

    Malý doplnok pre Firefox, Opera, Chrome, ktorý vám umožní uložiť celú webovú stránku na pevný disk jedným kliknutím!

    Podotýkam, že po kliknutí na ikonu PDF Mage sa aktuálna stránka jednoducho stiahne vo formáte PDF do vášho priečinka na sťahovanie. Je jednoducho nemožné si predstaviť niečo pohodlnejšie...

    Ukážem vám to na príklade.

    Po nainštalovaní rozšírenia budete mať v ponuke malú ikonu. Keď nájdete zaujímavú stránku, jednoducho na ňu kliknite ľavým tlačidlom myši.

    O chvíľu samotný prehliadač začne automaticky sťahovať súbor PDF. V skutočnosti sa všetko deje bez zbytočných pohybov, rýchlo a pohodlne!

    Používanie online služieb

    Na internete je tiež veľa internetových služieb, ktoré vám umožňujú rýchlo uložiť ľubovoľné stránky na internete vo formáte PDF. Podstata práce je približne nasledovná: vložíte do špeciálu. reťazec URL stránky, ktorú potrebujete uložiť.

    Potom kliknutím na tlačidlo vygenerujte súbor PDF. Po chvíli dostanete odkaz na stiahnutie vášho PDF. Samozrejme, môžete to použiť, ale podľa môjho skromného názoru je to všetko zdĺhavé a vhodné na dočasné použitie. Napríklad máte „problémy“ s prehliadačom alebo Windows, narazili ste na nejakú „zvláštnu“ stránku, ktorá nechce byť uložená pomocou predchádzajúcich metód.

    A tak najobľúbenejšie služby tohto druhu:

    1. - jednoduchá a pohodlná služba v angličtine. Na stránke je špeciál. riadok, do ktorého prilepíte adresu URL, a vedľa neho je tlačidlo generovania. Na konci si stiahnite hotové PDF na pevný disk.
    2. - iná zahraničná služba, ktorá funguje podobne.
    3. - veľmi populárna služba, s jej pomocou bolo uložených už viac ako 5 000 000 stránok po celom svete! Tu si okrem iného môžete stiahnuť doplnky pre prehliadač (aby ste stránku nenavštevovali zakaždým, keď potrebujete stránku uložiť).
    4. - pomerne jednoduchá a pohodlná služba. Minimum zbytočných informácií na stránke.

    To je z mojej strany všetko, veľa šťastia všetkým!


    Prečo potrebujete uložiť webové stránky? Možno si chcete prečítať informácie offline alebo urobiť nejaké pozorovania na stránke, alebo to chcete urobiť na iný účel. Mňa osobne nezaujíma, prečo to potrebujete, len vám poviem, ako to urobiť rôzne prehliadače. Ako teda môžete uložiť webovú stránku vo formáte PDF v prehliadačoch Chrome, Opera, Yandex, Firefox?

    Začnime s prehliadačom Chrome.

    Najprv musíte nájsť stránku, ktorá vás zaujíma. Ako príklad použijem automobilovú webovú stránku ax4.ru.

    V pravom hornom rohu kliknite na niečo ako sendvič. V zobrazenej ponuke kliknite na „ Pečať».

    Ďalej uvidíte, že predvolený je názov tlačiarne, ktorú ste nainštalovali, alebo inej tlačiarne, ktorú naprogramoval prehliadač. Musíme to zmeniť kliknutím na príslušné tlačidlo “ Zmeniť».

    Keď stlačíme " Zmeniť", zobrazí sa ponuka, v ktorej musíte vybrať položku " Uložiť ako PDF».

    Potom sa názov tlačiarne vľavo zmení na „ uložiť ako PDF" Jediné, čo musíte urobiť, je stlačiť tlačidlo „ Uložiť».

    Vyberte miesto uloženia (pre mňa je to Pracovná plocha).


    To je všetko, teraz môžete otvoriť uložené PDF súbor. Možno sa to nezdá veľa, ale text z neho môžete skopírovať veľmi jednoducho.

    Teraz otvorím súbor PDF cez Foxit Reader. Ako som už spomenul, môžete použiť iný program.
    To je všetko, nie veľmi pekné, ale pochopíte. Súbor PDF môžete vytvoriť z ľubovoľnej webovej stránky.

    Aby som to urobil, prejdem na spravodajskú stránku nz1.ru a vyberiem nejaké novinky.

    Ako ste už pochopili, postup je podobný vo všetkých prehliadačoch. Kliknite na podobnosť sendviča v pravom hornom rohu a potom „ Okrem toho"A" Pečať».

    Uložiť ako PDF.

    Potom vyberte miesto uloženia. Napríklad Desktop.

    Otvorte súbor pomocou ľubovoľného programu, ktorý číta vo formáte PDF, používame.

    Ukážem vám to na príklade stránky so skvelými obrázkami prikolnie-kartinki.ru.

    IN Prehliadač Mozilla Firefox robí veci trochu inak. Kliknite na sendvič v pravom hornom rohu obrazovky a vyberte „ Pečať».

    © 2024 ermake.ru -- O oprave PC - Informačný portál