Jak v Legacy efektivně využívat přímou tvorbu PDF?
Napsal: 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í
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á!
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í
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á!