Export dokumentu do PDF pomocí maker

programovani.png V minulém díle jste se naučili exportovat a importovat soubory do a z formátu CSV. Celý dnešní díl bude věnován exportu do PDF. Samotný export je věc takřka triviální a stačí jediný příkaz navíc při ukládání dokumentu. Co ale v případech, kdy chcete využít více možností, které export do PDF nabízí?     

Předchozí díl: Pokročilé volby ukládání a načítání souborů, export a import csv pomocí maker

Obrázky a pojmenování voleb pochází z OpenOffice.org 3.3. Je možné, že v LibreOffice budou některé volby v dialogu pojmenovány jinak, ale příkazy makrem by měly být shodné.

Export do PDF

Následující kód uloží soubor pod názvem a namísto originálu jako PDF. Kód využívá metodu storeToURL, jen určíte podmínky, za jakých má být dokument uložen.

sub export_do_pdf
doc = thisComponent
adresa = left (doc.url, len (doc.url)-4)+".pdf"
dim podminka_exportu (0) as new com.sun.star.beans.PropertyValue
podminka_exportu (0).Name = "FilterName"
podminka_exportu (0).Value = "calc_pdf_Export" 
' pro Writer pak writer_pdf_Export
doc.storeToURL (adresa, podminka_exportu ())
end sub 

V samotném dialogu pro export do PDF je mnoho možností nastavení. Platí, že pokud makrem neměníte některou z vlastností exportu, bude použito výchozí nastavení.

Volby exportu

V případě, že budete chtít exportovat do PDF s jiným nastavením, musíte toto nastavení změnit příkazem v makru. Pokud si přes záznamník maker nahrajete makro na export (které funguje celkem slušně), uvidíte volby pod argumentem FilterData. Stačí ale, určit jen ty hodnoty, které chcete měnit.

Nejčastěji budete zřejmě měnit rozsah stran a ostatní volby nepoužijete, popíšeme si zde ale většinu z nich. Nejprve postup jakým dostat hodnoty do makra.
sub pdf
doc = thisComponent
adr = left (doc.url, len (doc.url)-4)+".pdf"
dim podminka_filtru (0) as new com.sun.star.beans.PropertyValue
podminka_filtru (0).Name = "PageRange"
podminka_filtru (0).Value = "1-5"
dim podminka_exportu (1) as new com.sun.star.beans.PropertyValue
podminka_exportu (0).Name = "FilterName"
podminka_exportu (0).Value = "calc_pdf_Export"
podminka_exportu (1).Name = "FilterData"
podminka_exportu (1).Value = podminka_filtru
doc.storeToURL (adr, podminka_exportu ())
end sub 
Ve struktuře podminka_filtru definujete podmínky – zde rozsah stran. Do kódu pak již jen přidáte položku FilterData ve struktuře podminka_exportu a tím zajistíte export dokumentu podle požadavků makra.

Některé volby budou aktivní pouze v souvislosti s povolením jiných voleb, doporučuji si prozkoumat volbu
Soubor | Exportovat do PDF – dialog Volby PDF.

Dialog Volby PDF Dialog Volby PDF


Všechny vlastnosti, které jsou označeny jako boolean se určují hodnotami True (Ano) a False (Ne).

Záložka Obecné

Rozsah


Rozsah exportu do PDF Rozsah exportu do PDF


Zde nastavujete, kolik stran má být exportováno, lze nastavit čísla stran. PageRange – rozsah stran k exportu číslo zadáváte jako text – "1-5"

podminka_filtru (0).Name = "PageRange"
podminka_filtru (0).Value = "1-5" 
Lze také neexportovat prázdné stránky. IsSkipEmptyPages – skrýt prázdné stránky – hodnota boolean
podminka_filtru (0).Name = "IsSkipEmptyPages"
podminka_filtru (0).Value = True
Základní nastavení je export všech stránek najednou, pokud ale dokument obsahuje tiskové oblasti, budou exportovány pouze tyto oblasti – není třeba tedy nastavovat stránky.

Použití vlastností v kódu makra je snad jasné, dále budu uvádět pouze názvy vlastností s určením zadávané hodnoty.

Export obrázků


Volby exportu pro obrázky Volby exportu pro obrázky

  • "UseLosslessCompression" bezztrátová komprese obrázků – hodnota boolean
  • "Quality" nastavení kvality obrázků JPEG – hodnota číslem konkrétně v % (1-100)
  • "ReduceImageResolution" redukovat rozlišení obrázků – hodnota boolean – povolíte redukci, kterou poté nastavujete následující vlastností
  • "MaxImageResolution" – maximální rozlišení obrázků – hodnota číslem (v DPI)

Obecné


Obecné volby exportu Obecné volby exportu

  • "UseTaggedPDF" použít tagované PDF – hodnota boolean
  • "ExportFormFields" – vytvořit PDF formulář – hodnota boolean
  • "FormsType" – typ formulářových prvků – hodnota číslem (0 – FDF, 1 – PDF, 2 – HTML, 3 – XML)
  • "AllowDuplicateFieldNames" – povolit shodná jména polí – hodnota boolean
  • "ExportNotes" exportovat poznámky – hodnota boolean
  • "ExportBookmarks" – exportovat záložky – hodnota boolean
  • "IsSkipEmptyPages" skrýt prázdné stránky – hodnota boolean
  •  "EmbedStandardFonts" – vložit standardní fonty – hodnota boolean

Záložka Výchozí zobrazení

Panely


Volba panelů v novém PDF dokumentu Volba panelů v novém PDF dokumentu

  • "InitialView" nastavení panelů – hodnota číslem (0-jen stránka,1-záložky a stránka,2-náhledy a stránka)
  • ResizeWindowToInitialPage" změnit velikost okna podle první stránky hodnota boolean
  • "InitialPage" volba stránky k zobrazení – hodnota číslem (číslo stránky na které se PDF otevře)

Zvětšení


Volba zobrazení dokumentu v otevřeném PDF Volba zobrazení dokumentu v otevřeném PDF

  • "Magnification" zvětšení – hodnota číslem (0-výchozí,1-přizpůsobit oknu,2-přizpůsobit šířce,3-přizpůsobit viditelné)
  • "Zoom" – zobrazit dokument v přiblížení – hodnota číslem (1-100%)

Rozvržení stránek


Rozvržení stránek při zobrazení dokumentu PDF Rozvržení stránek při zobrazení dokumentu PDF

  • "PageLayout" – rozvržení stránek – hodnota číslem (0-výchozí,1-jedna str.,2-souvislé,3-souvislé po dvou)
  • "FirstPageOnLeft" – první stránka samostatně – hodnota boolean (v případě zobrazení stránek po dvou)

Záložka Uživatelské rozhraní

Nastavení okna


Nastavení zobrazení okna PDF Nastavení zobrazení okna PDF

  • "ResizeWindowToInitialPage" – změnit velikost okna podle první stránky – hodnota boolean
  • "CenterWindow" vystředit okno na obrazovce – hodnota boolean
  • "OpenInFullScreenMode" – otevřít v režimu celé obrazovky – hodnota boolean
  • "DisplayPDFDocumentTitle" zobrazit název dokumentu hodnota boolean

Nastavení uživatelského rozhraní


Nastavení voleb (zobrazení lišt…) Nastavení voleb (zobrazení lišt…)

  • "HideViewerToolbar" skrýt nabídku hodnota boolean
  • "HideViewerMenubar" – skrýt panel nástrojů hodnota boolean
  • "HideViewerWindowControls" – skrýt ovládací prvky okna – hodnota boolean

Přechody a záložky


Nastavení úrovní záložek v PDF dokumentu Nastavení úrovní záložek v PDF dokumentu

  • "OpenBookmarkLevels" – nastavení viditelných úrovní záložek – hodnota číslem (pro všechny úrovně zadejte číslo -1, jinak nastavujete úrovně od 1 dále)
  • "UseTransitionEffects" – použít přechodové efekty – hodnota boolean

Záložka Odkazy


Nastavení chování vložených odkazů Nastavení chování vložených odkazů

  • "ExportLinksRelativeFsys" – exportovat URL relativně k souborovému systému – hodnota boolean
  • "PDFViewSelection" – odkazy mezi dokumenty otevírat – hodnota číslem (0-výchozí režim, 1-otevřít v aplikaci pro čtení PDF, 2-otevřít v internetovém prohlížeči)
  • "ConvertOOoTargetToPDFTarget" – převést odkazy OO na odkazy PDF – hodnota boolean
  • "ExportBookmarksToPDFDestination" – exportovat záložky jako pojmenované cíle – hodnota boolean

Záložka Bezpečnost


Nastavení bezpečnosti vytvořeného dokumentu PDF Nastavení bezpečnosti vytvořeného dokumentu PDF


Zde nastavujete omezení vytvořeného PDF dokumentu. Je možné omezit tisk, změny v dokumentu, nastavit heslo na otevření a další.


Heslo pro otevření

  • "EncryptFile" – povolit heslo k otevření – hodnota boolean
  • "DocumentOpenPassword" – nastavení hesla k otevření text (například: "Heslo")

Heslo pro oprávnění

  • "RestrictPermissions" – omezit oprávnění – hodnota boolean
  • "PermissionPassword" – heslo k omezení oprávnění – text (například: "Heslo")

Ostatní nastavení

  • "Printing" – povolení tisku – hodnota číslem (0-nepovoleno,1-nízké rozlišení (150 DPI),2-vysoké rozlišení)
  • "Changes" – povolení změn – hodnota číslem (0-nepovoleny, 1-vkládání, mazání a otáčení stran,2-vyplnění formuláře, 3-koment., vyplnění formuláře, 4-vše mimo vyjmutí stránek)
  • "EnableCopyingOfContent" – povolení kopírování dokumentu – hodnota boolean
  • "EnableTextAccessForAccessibilityTools" – povolení přístupu k textu pro zpřístupnění – hodnota boolean

Toto jsou veškerá nastavení exportu do PDF makrem, které jsem byl schopen vypátrat. Ne všechny jsou odzkoušené – stejně jako většina uživatelů vystačím se základním exportem a rozšířená nastavení nevyužívám. Pokud bych ale chtěl, tak postup je v tomto článku.

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 5
 

Komentáře

user avatar rad
Odpovědět
Export dokumentu do PDF pomocí maker
11. 02. 2014, 15:01:53
diky za tip. Fuguje to super. Poradite mi někdo jak precist nazev ukladaneho pdf z bunky?
user avatar Ludvík
Odpovědět
Export dokumentu do PDF pomocí maker
27. 02. 2014, 20:57:45
používám něco takového, ale též jsem to někde opsal tak vlatně nemohu asi moc radit
dim sPATH as string
dim arg(0) as new com.sun.star.beans.PropertyValue
dim s1 as object
dokument = ThisComponent
s1 = dokument.Sheets.GetByName("dopis")
sPATH = s1.GetCellRangeByName("P11").String
arg(0).Name = "FilterName"
arg(0).Value = "calc_pdf_Export"
ThisComponent.storeToURL(ConvertToUrl(sPATH), arg())

Je to takový výňatek z většího a složitějšího makra bez záruky funkčnosti, ale to načtení adresy z buňky "P11" na listu "dopis" tam vidět je
user avatar Jan
Odpovědět
Export dokumentu do PDF pomocí maker
18. 01. 2022, 15:33:11
Dobrý den,
dokázal by mi někdo prosím poradit, jak pomocí makra pro tisk do pdf toto pdf pojmenovat obsahem buňky?
Už jsem u toho proseděl několik hodin a pokus omyl nefunguje.
Díky za každou radu
user avatar kamlan
Odpovědět
Re:Export dokumentu do PDF pomocí maker
18. 01. 2022, 17:59:32
Jestli myslíte titulek co se nastavuje z menu Soubor/ Vlastnosti -> Popis/ Název, tak se makrem dá nastavit: ThisComponent.DocumentProperties.Title
Jestli myslíte pojmenovat PDF dle názvu souboru tak třeba ThisComponent.URL.

Všeobecně byste měl potřebné vlastnosti najít přes doplněk XRay nebo MRI, i když to nebývá vždy jednoduché.

Jinak by tenhle dotaz byl vhodnější na fórum i s tím makrem kterým exportujete.
user avatar kamlan
Odpovědět
Re:Re:Export dokumentu do PDF pomocí maker
18. 01. 2022, 18:00:52
Očividně exportujete makrem v článku, to jsem přehlédl :-)
user avatar Jan
Odpovědět
Export dokumentu do PDF pomocí maker
19. 01. 2022, 08:27:11
Dobrý den, děkuji za reakci. Nejsem bohužel tak znalý těchto věcí, většinou jsem si pomohl již vytvořenými makry a upravil si je. Ale v tomto případě mám v LibreOffice Calc buňku, třeba C10, kde je text "1599470-0222-1/A" a já potřebuji po stisknutí tlačítka, aby se mi dokument vytiskl do pdf na určité místo a jmenoval se jako text v té buňce. :-)
Ve VBA v excelu se mi to nějak povedlo, ale tady si nevím rady.
Díky
user avatar kamlan
Odpovědět
Re:Export dokumentu do PDF pomocí maker
19. 01. 2022, 13:46:32
Jestli to tedy dobře chápu tak potřebujete aby název PDF souboru byl jako ten údaj v buňce, čili v ukázkovém makru z článku stačí změnit proměnnou adr aby obsahovala údaj z buňky. Akorát si přizpůsobte název listu v proměnné oList a adresu buňky v oBunka.

Sub pdf
dim doc as object, oList as object, oBunka as object, adr$, p()
doc=thisComponent
oList=doc.Sheets.getByName("List1") 'list ve kterém je buňka s názvem
oBunka=oList.getCellRangeByName("C10") 'buňka ve které je název
adr=left (doc.url, len (doc.url)-4) 'url ODS souboru bez přípony
p=split(adr, "/")
p(ubound(p))=oBunka.string & ".pdf" 'jméno PDF souboru bude údaj z buňky
adr=join(p, "/") 'url ukládaného PDF
dim podminka_filtru (0) as new com.sun.star.beans.PropertyValue
podminka_filtru (0).Name="PageRange"
podminka_filtru (0).Value="1-5"
dim podminka_exportu (1) as new com.sun.star.beans.PropertyValue
podminka_exportu (0).Name="FilterName"
podminka_exportu (0).Value="calc_pdf_Export"
podminka_exportu (1).Name="FilterData"
podminka_exportu (1).Value=podminka_filtru
doc.storeToURL (adr, podminka_exportu () )
End Sub
user avatar Jan
Odpovědět
Re:Re:Export dokumentu do PDF pomocí maker
20. 01. 2022, 15:13:32
Dobrý den, mockrát Vám děkuji za pomoc. Tisk funguje skvěle, jen je tu jedna maličká drobnost. Pokud je v buňce tento popis - 1599470-0621-1/A - po stisknutí tlačítka se vytvoří v cílové složce podsložka s názvem 1599470-0621-1, ve které je pdf soubor s názvem A. Nešlo by prosím ještě tohle odladit? To lomítko tam má svůj význam v tom názvu. Dal jsem místo něj pomlčku a poté se uloží jen soubor pdf s názvem buňky. Jinak ještě jednou moc děkuji, hodně jste mi pomohl. :-)
user avatar kamlan
Odpovědět
Re:Re:Re:Export dokumentu do PDF pomocí maker
22. 01. 2022, 11:09:42
To bohužel nepůjde, nelze dát do názvu souboru znak / ani \, neboť tyto znaky jsou znaky oddělující adresáře -> a to je záležitost operačního systému a nikoliv programů v něm. Je možné ale nahradit to lomítko automaticky za jiný znak, třeba za podtržítko. Změňte si řádek:

p(ubound(p))=join(split(oBunka.string, "/"), "_") & ".pdf" 'jméno PDF souboru bude údaj z buňky, ale nahradí / v názvu za _
user avatar Jan
Odpovědět
Re:Re:Re:Re:Export dokumentu do PDF pomocí maker
25. 01. 2022, 08:25:07
Dobře, děkuji Vám za vysvětlení a pomoc, nějak se s tím už poperu. Hezký den.

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Daniel Sedláček

Daniel Sedláček

Amatérsky se věnuji programování maker od podzimu 2010.
Aktivní jsem na fóru od ledna 2011.
Od července 2011 spolupracuji i jako moderátor fóra.

Využívám pouze OpenOffice.org (LibreOffice nemám nainstalován).

 
 
 
woo jaw demo hz