Ģenerējiet PDF, izmantojot atvērtā pirmkoda C++ API
Atvērtā pirmkoda C++ bibliotēka PDF failu izveidei, rediģēšanai, manipulēšanai un parsēšanai.
Kas ir PDF-Writer?
PDF-Writer ir atvērtā pirmkoda C++ bibliotēka, kas pilnībā atbalsta PDF failu, kā arī straumju izveidi, rediģēšanu, manipulēšanu un parsēšanu. Bibliotēka tika izstrādāta, izmantojot galveno “vienreizējo” PDF failu ģenerēšanas metodi. Tāpēc tas darbojas ātri un izmanto maz atmiņas neatkarīgi no faila pieauguma. Tāpēc vislabāk ir izveidot mazus PDF failus vai ģenerēt lielākus PDF dokumentus.
Satura pievienošana PDF failam vienmēr ir ļoti svarīga, un tā palīdz izstrādātājiem izveidot pielāgotus PDF failus. Bibliotēkā ir iekļauts atbalsts vairākām svarīgām PDF failu apstrādes funkcijām, piemēram, PDF lappušu izveidei, PDF operatoriem satura zīmēšanai, JPG vai PNG un TIFF attēlu iegulšanai, PDF modificēšanai, PDF failu sapludināšanai vai sadalīšanai, PDF failu renderēšanai, datu izvilkšanai no PDF. , Unicode teksta atbalsts, TrueType un OpenType fontu atbalsts un daudz kas cits.
Darba sākšana ar PDF-Writer
Ieteicamā bibliotēkas izveides metode un lietojumprogrammas paraugs ir izmantot CMake. to var iegūt no CMake vietnes. Bibliotēka ir atkarīga no Zlib, LibTiff, LibJpeg, FreeType un LibPng. Tas nozīmē, ka tie ir jāapkopo arī pirms PDF bibliotēkas izmantošanas saistītā kontekstā.
Varat to instalēt arī manuāli; lejupielādējiet jaunākos laidiena failus tieši no GitHub krātuves.
PDF ģenerēšana un modificēšana, izmantojot C++
Programmatūras izstrādātāji var izmantot PDF-Writer API, lai ģenerētu jaunu PDF failu savās C++ lietojumprogrammās. Bibliotēka arī ļauj izstrādātājiem to pārveidot atbilstoši savām vajadzībām. Varat viegli iegult JPG, PNG un TIFF attēlus, definēt atkārtoti lietojamus objektus, viegli iegult esošās PDF lapas, kā arī tekstu. Varat izmantot esošās PDF lapas, pievienojot tās kā lapas PDF failam vai izmantojot tās kā daļas, lai iekļautu jaunizveidotās lapas grafikā. Veicot tālāk norādītās darbības, varat viegli ģenerēt PDF.
Ģenerējiet PDF formātā C++
- Izveidojiet PDFWriter objekta gadījumu
- Atveriet PDF failu rakstīšanai
- Tagad turpiniet un pievienojiet saturu PDF failam.
- Saglabājiet PDF dokumentu
PDF ģenerēšana programmā C++
// Create an instance of the PDFWriter objec
PDFWriter pdfWriter;
// Open a PDF file for writing
pdfWriter.StartPDF("c:\\myFile.pdf",ePDFVersion13);
// ...add content to PDF file...
pdfWriter.EndPDF();
Jaunu lapu pievienošana PDF dokumentam
Ar PDF-Writer bibliotēku ir iespējams pievienot jaunas lapas un iestatīt to izmērus PDF dokumentā. Tas ir ļoti vienkārši un prasa tikai dažas C++ koda rindiņas, lai PDF failam pievienotu jaunas lapas. Bibliotēka arī sniedz izstrādātājiem tiesības modificēt esošu lapu vai dzēst lapu. Ir iespējams arī pievienot saturu jau izveidotai PDF lapai.
Attēlu iegulšana PDF dokumentos
PDF-Writer bibliotēka nodrošina atbalstu TIFF, PNG un JPG attēlu, kā arī PDF lapu iegulšanai. Ir augsta līmeņa metodes, kas ir vispārīgas jebkura veida attēlam. Bez tam ir dažas zemāka līmeņa metodes attēlu uzlabotai izmantošanai. Tas ir nodrošinājis atbalstu JPG attēliem, izmantojot vietējo DCT dekodētāju, PNG, izmantojot dekodēšanu ar LibPng, un TIFF attēlus, izmantojot kodēšanu/dekodēšanu, izmantojot LibTiff.
Attēlu iegulšana PDF failā, izmantojot C++
pdfWriter.StartPDF("HighLevelImages.PDF",ePDFVersion13);
PDFPage* page = new PDFPage();
page->SetMediaBox(PDFRectangle(0,0,595,842));
PageContentContext* cxt = pdfWriter.StartPageContentContext(page);
cxt->DrawImage(10,10,"soundcloud_logo.jpg"));
pdfWriter.EndPageContentContext(cxt);
pdfWriter.WritePageAndRelease(page);
pdfWriter.EndPDF();
Dažādu PDF dokumentu pievienošana
Izmantojot atvērtā pirmkoda PDF apvienotāja API, lietotāji var ātri apvienot vairākus PDF dokumentus bez ārējām atkarībām, izmantojot tikai dažas koda rindiņas. PDF-Writer sniedz programmatūras izstrādātājiem tiesības ģenerēt pavisam jaunu PDF dokumentu no esošajiem PDF failiem. Tas palīdz lietotājiem vieglāk saglabāt un pārskatīt PDF dokumentu.
PDF lappušu satura sapludināšana, izmantojot C++
PDFPage* page = new PDFPage();
page->SetMediaBox(PDFRectangle(0,0,595,842));
PDFPageRange singlePageRange;
singlePageRange.mType = PDFPageRange::eRangeTypeSpecific;
singlePageRange.mSpecificRanges.push_back(ULongAndULong(0,0));
pdfWriter.MergePDFPagesToPage(page,"C:\\Other2PagePDF.PDF",singlePageRange);
pdfWriter.WritePageAndRelease(page);