- S tou mezerou na začátku se celkem nic dělat nedá. Makro sloučí řetězce z různých následných textových rámců. Z toho vznikne jeden dlouhý rámec. Makro následně řetězec rozseká na kousky které obsahují předem nastavený počet znaků (míst řetězce). Tím se snadno stane, že je rozděleno slovo někde v půlce a je to z pohledu pravidel ČJ nesprávně. Klidně to usekne jen tečku která je pak na začátku řádku, za ní mezera a pak následující věta.
U tohoto postupu je relativně nevhodné přidáván CHAR(10) = nový řádek. Zvětšuje totiž délku řetězce ačkoliv není vidět a sám nemá viditelný rozměr. Zásahy do délky řetězce jsou obecně nežádoucí. Poměrně snadno by šel spustit nad sloučeným řetězcem cyklus, který by smazal dvojité mezery, nebo jiné netisknutelné znaky.
Ty mohou mít různou příčinu ve zdroji textového rámce, nebo i mezi rámci. Problém je v tom, že smazané znaky vytvoří mezeru kterou by někdy bylo nutné pořešit. Většinou by zůstalo u nehezké mezery. Mohl by to být řádek i více.
Právě proto jsem uváděl, že sloučený řetězec je vhodněší odřádkovat ručně - ale za to přesně. Samo sebou to chce určitý návyk jak s tím pracovat. Takže ty mezery na začátku, nebo špatně rozdělená slova musíte opravit ručně.
Podobně to je s těmi indexy. Já takto z voleje nevím jestli má index nějaký vlastní malý rámeček (shape) nad základním rámcem řetězce, nebo jestli je to běžný ale úzký prostor textu. Ten může být jen chybně vyhodnocen jako mezera.
Problém je když by to byl nestandardní samostatný rámec nad běžným textem který se nenačte. To může mít několik příčin :
- ukotvení k mřížce
- jiný nežli textový rámec (obrázek)
- jinou vrstvu (nad/pod tou kde je text)
Navíc různé typy PDF mohou obsahovat různá řešení pohoto problému-
Proto bych doporučil otestovat nejprve zda není index ukotven samostatně. Když se na něj klikne, tak by se vybral (orámoval) jen index. Pak jde o to, zda není přichycen k mřížce - na to je nástroj který by ho odepnul a pak by se to mohlo načíst správně.
Když to bude obrázek tak se ani tak nenačte. Musel by se manuálně přemístit. Možná stačí jen vybrat a odkrokovat protože může být v jiné vrstvě na kterou se musí přepnout, nebo umístit hlavní text na pozadí (to je přepínání mezi objekty a vrstvami).
Další možností by bylo předem rozdělení rámce před indexem a sloučit vše až k indexu. Následně výraz s indexem (nebo jen index) připsat na konec sloučeného textu. Původní výraz ručně smazat a spustit znovu sloučení.
Podobně lze oddělený výraz horního indexu někdy nahradit speciálním znakem. To byste ale musel vyhledat a pak manuálně vložit na správné místo.
Když by index byl polem ve stejné vrstvě, mělo by jít předem spojit objekt textu a indexu (případně odpojit od mřížky).
Dalším řešením by bylo smazání a nahrazení matematickým výrazem pro index - stříška (příklad a^2). Bylo by to zvětšení řetězce o 2,5 znaku. Většinou by se to mělo vejít. nebo maličko posunout celý rámec.
V žádném případě asi nebude možné použít tentýž postup na různé druhy PDF. Prakticky to znamená vždy manuální úpravu. Je to dost limitní záležitost. Jiným řešením by bylo namapovat celý obrázek s identifikací polí a jejich obsahem. Tento protokol pak vyhodnotit a upravit + vytvořit nový obrázek, nebo vše v původním smazat a vložit upravný obsah.
Mapování obsahu (byť se jedná o vektory) už je poměrně náročné na všechny prostředky. Objekty se odlišují názvem typu rámce, ale jednotlivé rámce nejsou označeny - mají jen souřadnice. Co je uvnitř se musí také zmapovat. To by už byl velký projekt. Běžně se toto řeší pomocí XML filtrů. Makrem je to hrozně pomalé - byť asi univerzálnější nežli specializovaný filtr. Do toho bych se už asi nepustil.
Editoval neutr (9. 11. 2016 08:51:46)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ