Ve Wordu je tučné písmo Žádné. Počítá se to jako tučné?

Přímý formát None znamená nenastaveno, nikoli False. Kontroluje se zde pouze přímé formátování a explicitní řetězce stylů znaků; Pokud není nalezena žádná hodnota, není vráceno žádné, takže styly odstavců, výchozí hodnoty dokumentu a pravidla přepínání OOXML budou pro další analýzu a nelze je nazvat kompletní kalkulačkou efektivních stylů.

bold je ve Wordu Žádné. Počítá se to jako tučné? Závěr jednou větou

Pokud používáte python-docx k dávkové kontrole formátu dokumentů aplikace Word, možná jste narazili na tuto pochybnost: run.bold vrací None. Je to tučné, ne tučné nebo něco jiného? Tento problém se objeví při kontrole formátu, dávkovém třídění nebo kontrole rozvržení před překladem. Chybný úsudek zkreslí závěr formátu.

Tento článek je určen vývojářům a dokumentovým inženýrům, kteří potřebují napsat své vlastní skripty pro analýzu stylu .docx. Po přečtení pochopíte, proč se None nerovná False, naučíte se používat rekurzivní funkce k ustupování v řetězci stylů a budete vědět, kterým úsudkům lze věřit a které je třeba nechat na lidské kontrole.

Ve Wordu je tučné písmo Žádné. Počítá se to jako tučné? Závěr jednou větou

run.bold je None, což znamená, že není nastaveno v přímém formátu, což neznamená, že není tučné. Měli byste pokračovat v hledání směrem nahoru podél stylu odstavce, výchozí hodnoty dokumentu atd. Kód v tomto článku kontroluje pouze přímé formátování a řetězce explicitních stylů znaků a není úplnou kalkulačkou platného stylu.

vaší situaciDoporučené postupydůvod
run.bold vrátí NonePokračujte v hledání v řetězci stylů znaků, nepovažujte to přímo za FalseNone znamená nenastaveno, není záporné
run.bold Návrat FalsePovažujte za výslovné zrušení tučného písmaExplicitní přepsání odpovídající <w:b w:val="0"/>
V řetězci stylů nebyla nalezena žádná hodnotaOznačte pro ruční kontroluMůže zahrnovat nevyřešená nastavení, jako jsou docDefaults nebo písma motivů
Název stylu Čínský aliasBlokujte a oznamujte chyby, neřešte potichupython-docx má nestabilní podporu pro názvy lokalizovaných stylů
Komplexní položky seznamu nebo .doc převedené, chráněné, makromodifikované souboryPodléhá ruční kontroleVýsledky analýzy nemusí odpovídat vizuální reprezentaci

Který problém by měl být v tomto článku vyřešen jako první?

Přímý formát None znamená nenastaveno, nikoli False. Kontroluje se zde pouze přímé formátování a explicitní řetězce stylů znaků; None je vráceno, když není nalezena žádná hodnota, takže je ponecháno na styly odstavců, výchozí hodnoty dokumentu a pravidla přepínání OOXML pro další analýzu a nelze jej nazvat úplnou kalkulačkou platných stylů.

Příklad samostatné kompozice

Závislosti naleznete v seznamu importů. Kód vytváří vstup v paměti; záznamy běhu jsou poskytovány samostatně a nepředstavují záruku všech skutečných souborů.

from docx import Document
from docx.enum.style import WD_STYLE_TYPE
def partial_bold(run):
    if run.bold is not None:
        return run.bold
    style, seen = run.style, set()
    while style is not None and style.style_id not in seen:
        seen.add(style.style_id)
        if style.font.bold is not None:
            return style.font.bold
        style = style.base_style
    return None
doc = Document()
style = doc.styles.add_style("DemoBold", WD_STYLE_TYPE.CHARACTER)
style.font.bold = True
run = doc.add_paragraph().add_run("Example")
run.style = style
assert partial_bold(run) is True
run.bold = False
assert partial_bold(run) is False
plain = doc.add_paragraph().add_run("Plain")
assert partial_bold(plain) is None

Pochopte třístavovou logiku dědičnosti stylu

Tučný atribut ve Wordu má tři stavy, které je třeba chápat samostatně:

  • Explicitní tučné písmo: Vyberte text v rozhraní a klikněte na tlačítko tučné. <w:b/> je zapsán v XML a run.bold je True.
  • Explicitní zrušení: Chcete-li konkrétně zrušit určitý stylový efekt, který by měl být tučný, napište do XML <w:b w:val="0"/> a run.bold je False.
  • Nenastaveno: Text pouze leží v odstavci bez přímých tučných značek. Zda tučné nebo ne, závisí na přidružené definici stylu, run.bold je None.

None znamená „prosím, podívejte se nahoru", nikoli „ne".

Proč potřebujeme zpětně sledovat řetězec stylů?

Tento návrh má uložit velikost souboru a zachovat konzistenci formátu. Jak uvádí oficiální dokumentace, vestavěné styly (Built-in Styles) se dostyles.xml ani nezapisují, dokud nejsou použity, existují uvnitř aplikace Word jako „latentní styly". Proto musí mít kód možnost zpětného sledování řetězce stylů, spíše než spoléhat se pouze na vlastnosti samotného objektu Run.

Abychom bezpečně určili, zda je text skutečně tučný, musíme napsat rekurzivní funkci, která prochází řetězcem dědičnosti stylu. Upozornění: Následující kód je ukázkou výuky, která prošla kontrolou syntetického vzorku a je určena k demonstraci třístavové logiky úsudku. Skutečná produkční prostředí se také musí vypořádat s ochranou kruhových odkazů, rozlišením jmenného prostoru a dalšími typy atributů.

Kritéria přijetí a hranice manuální kontroly

Automatická analýza nemůže dokonale emulovat vykreslovací modul aplikace Word. Při práci s dávkovými dokumenty by měla být vytvořena jasná akceptační matice, která by rozlišovala mezi situacemi, kdy se na kód lze spolehnout, a kde je nutné jej ponechat na lidech.

Pozorovat jevynávratová hodnota kóduskutečné ztvárněnírozhodnutí o zpracováníPoznámka
Run.bold=Žádný, Style.bold=TrueTrueTučné✅ Automaticky prošloStandardní scénář dědičnosti stylu
Run.bold=Nepravda, Styl.bold=TrueFalsekonvenční✅ Automaticky prošloExplicitní pokrytí, logika kódu je správná
Run.bold=Žádné, Style.bold=ŽádnéFalseTučné⚠️ Vyžaduje ruční kontroluMožná chybí docDefaults nebo nastavení písma motivu
Název stylu Čínský aliasAttributeError-❌ Zablokujte a nahlaste chybupython-docx má nestabilní podporu pro názvy lokalizovaných stylů
Text ve složitých položkách seznamuTrue/Falsenejistý⚠️ Vyžaduje ruční kontroluInterakce mezi stylem seznamu a stylem odstavce je extrémně složitá

Nelze použít

Tato logika analýzy funguje pouze se standardním formátem.docx. U souborů převedených z .doc, chráněných dokumentů nebo dokumentů, jejichž formát je dynamicky upravován pomocí maker, se výsledky analýzy kódu mohou vážně lišit od vizuální reprezentace. Kromě toho kód demonstruje logiku extrakce atributů spíše než obnovu end-to-end sazby. Pokud je cílem přesně reprodukovat rozložení, spoléhat se pouze na hodnoty atributů nestačí.

📊 Srovnání jádra

státJak psát v přímém formátuNávrat run.boldvýznam
Vyloženě odvážné<w:b/>TruePřímo odvážné
Explicitní zrušení<w:b w:val="0"/>FalseStylově přepište tučné písmo
není nastavenoŽádné tučné popiskyNonePokračujte v hledání podél řetězce stylů

🎯 Která metoda je pro vás vhodná?

Pokud chcete určit, zda je text tučný

Vraťte se po řetězci stylů, nečtěte jen run.bold.

Pokud potřebujete pouze číst přímý formát

True a False lze přijmout přímo, zatímco None musí pokračovat v posuzování.

Pokud chcete přesně reprodukovat rozložení

Výchozím bodem je těžba nemovitosti v kombinaci s výsledky vykreslování a ruční kontrolou.

Pokud máte co do činění s .doc, chráněnými nebo makra upravenými soubory

Nejprve proveďte proces ruční kontroly a výsledky kódu jsou pouze orientační.

❓ Často kladené otázky (FAQ)

1. run.bold je None, znamená to, že není tučné?

žádný. None znamená, že v přímém formátu není žádné nastavení a vyhledávání by mělo pokračovat v řetězci stylů.

2. Dokáže tento kód úplně obnovit rozložení Wordu?

nemůže. Kód demonstruje logiku extrakce atributů, nikoli úplné obnovení sazby.

3. Co mám dělat, když narazím na název čínského stylu?

Podpora python-docx pro lokalizované názvy stylů je nestabilní a rozhodnutí o zpracování v matici přijetí je zablokovat a nahlásit chybu.

4. Co byste měli udělat před manipulací s důležitými dokumenty?

Zachovejte originál a zkontrolujte výsledky podle hranic a položek přijetí v textu.

Reference a další čtení

Tento kontrolní seznam použijte pro překlad dokumentů

Překlad slov má tendenci míchat problémy s obsahem s problémy s formátováním. Ponechání kontrolních položek, jako jsou styly, záhlaví a tabulky na seznamu doručení, dává recenzentům vědět, kde je hledat.

OmniDoc (produktový portál) poskytuje portál pro překlad dokumentů ve více formátech a oficiální webové stránky zavádějí funkce OCR, glosář a dvojjazyčné porovnání. Pro týmy, které chtějí pracovat přímo ze souborů, je to cesta, kterou stojí za to vyhodnotit pomocí reálných vzorků. Použijte prosím znecitlivěné soubory, k jejichž nahrávání máte oprávnění, a ke kontrole výsledků použijte zaškrtávací položky v tomto článku. Není zde žádné tvrzení, že OmniDoc používá open source knihovny nebo interní algoritmy v tomto článku, ani tento příklad nenahrazuje testování výkonu produktu.

📝 Shrnutí

None je „nenastaveno", nikoli „ne". Při posuzování tučného písma musíte pokračovat ve sledování podél řetězce stylů. V případě nejistoty jej předejte k ruční kontrole podle akceptační matice.

Vyzkoušejte to hned: Nahrajte dokument a začněte překládat při zachování původního rozvržení

Aktualizováno 2026-11-14