Jak v Legacy efektivně využívat přímou tvorbu PDF?

Pokud máte dobrý tip na použití Legacy, vložte jej sem.
Falt
Příspěvky: 405
Registrován: 30 srp 2013 23:48
Kontaktovat uživatele:

Jak v Legacy efektivně využívat přímou tvorbu PDF?

Příspěvekod Falt » 27 srp 2016 19:48

Je známou slabinou Legacy, že přímá tvorba PDF souboru končí chybnou intepretací některých českých písmen. Proto se obecně doporučuje vyhnout se přímé tvorbě PDF a z náhledu reportu použít tisk přes virtuální tiskárnu do PDF, např. Microsoft Print to PDF.

Naštěstí je dnes už možné využívat i přímý výstup do PDF. Na řešení mne přivedla zkušená uživatelka z Austrálie, která se podílí na testování Legacy. Zeptala se mne, proč nevyužívám možnosti editovat soubor PDF ve Wordu? Nelenil jsem a pořídil si MS Office 2016 pro domácnost a začal s testováním. A ajta krajta - ono to jde. Má to jediné omezení – Report časového přehledu obsahuje příliš vysoký podíl grafiky, která se pak ve Wordu nezobrazí optimálně. Ale o tom si brzy povíme více v příspěvku k tématu Publikační centrum.
Při pokusu o otevření souboru PDF ve Wordu se objeví toto upozornění
Word-PDF.png
Upozornění při otevírání souboru PDF ve Wordu
Word-PDF.png (6.01 KiB) Zobrazeno 9395 x

Nicméně drtivá většina výstupů z Legacy se otevře bez pošramocení vzhledu a lze ihned přistoupit k editaci. Protože je nutné provést řadu záměn, sestavil jsem si pro tyto úpravy následující makro:

[i][size=85]Sub CzechLetters()
'
Sub CzechLetters()
'
' CzechLetters Makro
' Makro pro záměnu chybně zobrazených českých znaků za správné zobrazení. Pro úpravy v zápatí/záhlaví je nezbytné umístit nejprve kurzor do zápatí/záhlaví
'

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(204) & " "
.Replacement.Text = "Ě"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(236)
.Replacement.Text = "ě"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(232)
.Replacement.Text = "č"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(200)
.Replacement.Text = "Č"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(248)
.Replacement.Text = "ř"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(216)
.Replacement.Text = "Ř"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(249)
.Replacement.Text = "ů"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(242)
.Replacement.Text = "ň"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(239) & " "
.Replacement.Text = "ď"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "•" & " "
.Replacement.Text = "Ť"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(207) & " "
.Replacement.Text = "Ď"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "•"
.Replacement.Text = "ť"
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Nejjednodušší je, aby si zájemce vytvořil u sebe[color=#BF0000] záznam prázdného makra
a do něj příkazy přiloženého makra okopíroval.
Makro CzechLetters jsem vyzkoušel v prostředí Wordu 2016. V této verzi je nutné spouštět makro pro úpravu textů v zápatí/záhlaví až po přemístění kurzoru do zápatí/záhlaví – jinak by tady nedošlo k opravě chybných českých písmen za správná. Podle odkazu https://support.office.com/cs-cz/article/%C3%9Aprava-obsahu-PDF-ve-Wordu-b2d1d729-6b79-499a-bcdb-233379c2f63a lze otvírat PDF soubory a editovat je i ve Wordu 2013.
Velkou předností této nové možnosti je, že si mohu na závěr vybrat, zda chci opravený soubor opět uložit ve formátu PDF anebo ve wordovském formátu.
Hurá! :idea:
Naposledy upravil(a) Falt dne 30 srp 2016 05:56, celkem upraveno 1 x.

Falt
Příspěvky: 405
Registrován: 30 srp 2013 23:48
Kontaktovat uživatele:

Re: Jak v Legacy efektivně využívat přímou tvorbu PDF?

Příspěvekod Falt » 30 srp 2016 05:54

Po upozornění byla opravena chyba v kódu makra a doplněna náhrada českých znaků Ť (např. Ťoupal) a Ď (např. Ďuriš). Díky za upozornění.
;)


Zpět na “Tipy & triky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů