AsposeTeXforPython – поширені запитання
З: Що таке AsposeTeXforPython?
В: AsposeTeXforPython — це чистий API Python (створений на основі бібліотеки AsposeTeX .NET через pythonnet), який рендерить і перетворює документи LaTeX/TeX у PDF, XPS, SVG, PNG, JPEG, BMP, TIFF та інші формати зображень, не вимагаючи жодного зовнішнього дистрибутива TeX. Він працює в процесі роботи та підходить для веб-сервісів, настільних програм і автоматичних генераторів звітів.
З: Як встановити AsposeTeXforPython?
В: Запустіть pip install aspose-tex-python-net. Пакет автоматично включає необхідне середовище виконання pythonnet. Встановіть його в будь-якому віртуальному середовищі (Windows, Linux, macOS) з Python3.8 або новішої версії. Перевірте встановлення за допомогою:
1import aspose.tex as tex
2print(tex.__version__)З: Чи потрібен мені локальний дистрибутив TeX (MiKTeX, TeXLive тощо)?
В: Ні. Уся логіка аналізу та рендерингу вбудована в AsposeTeX, тому вам ніколи не знадобиться зовнішній механізм TeX. Бібліотека містить понад 300 базових пакетів LaTeX і стандартних файлів класів.
З: Як конвертувати файл .tex у PDF за допомогою кількох рядків коду?
В:
1import aspose.tex as tex
2
3doc = tex.Document("sample.tex") # load LaTeX source
4doc.save("sample.pdf", tex.SaveFormat.PDF) # write PDFВи також можете створити документ із рядка (tex.Document(latex_source)) або потоку в пам’яті.
З: Які вихідні формати може генерувати AsposeTeXforPython?
В: PDF, XPS, SVG, PNG, JPEG, BMP і TIFF. Кожним форматом можна керувати за допомогою спеціальних об’єктів SaveOptions (наприклад, PdfSaveOptions, ImageSaveOptions, SvgSaveOptions).
З: Як вставити власні шрифти в створений PDF?
В: Зареєструйте спеціальну папку шрифтів перед рендерингом:
1font_src = tex.FontSource()
2font_src.add_folder(r"C:\MyFonts") # or "/home/user/fonts"
3tex.FontSettings.set_default_sources([font_src])
4doc.save("out.pdf", tex.PdfSaveOptions())За замовчуванням усі використовувані шрифти вбудовані; вимкнути вбудовування за допомогою PdfSaveOptions.embed_fonts = False.
З: Які пакети та класи LaTeX підтримуються з коробки?
В: Більше 300 основних пакетів (наприклад, amsmath, graphicx, hyperref, xcolor, tikz, pgfplots, booktabs) і загальних класів (article, report, book, memoir).
З: Як я можу використати сторонній .sty або файл класу, який не є вбудованим?
В: Розмістіть файл .sty/.cls у тому самому каталозі, що й вихідний документ, або додайте його папку до завантажувачів ресурсів документа:
1doc = tex.Document("mydoc.tex")
2doc.resource_loaders.append(tex.FolderResourceLoader(r"C:\MyLatexPackages"))Механізм автоматично завантажить спеціальні файли під час наступного перетворення.
З: Які основні обмеження двигуна?
В:
| Обмеження | Деталі |
|---|---|
Вихідний код оболонки (\write18) | Вимкнено з міркувань безпеки. |
| Повна екстерналізація TikZ | Не підтримується; більшість графіки TikZ відтворюються в процесі, але надзвичайно складні малюнки можуть не працювати. |
| Покриття шрифтів Unicode | Повністю підтримуються лише шрифти TrueType/OpenType з повними наборами гліфів; застарілі шрифти Type1 можуть потребувати конвертації. |
| Дуже великі документи (>500 сторінок) | Можуть споживати значну кількість пам’яті; розгляньте можливість потокової передачі сторінок за допомогою Document.save(output_stream, options). |
З: Як застосувати ліцензійний ключ і які доступні моделі ліцензування?
В: Застосуйте ліцензію один раз на процес:
1import aspose.tex as tex
2tex.License().set_license("Aspose.Total.NET.lic")Варіанти ліцензування: безкоштовна пробна версія (обмеження на 10 сторінок, без водяних знаків), розробник/один комп’ютер (необмежена кількість сторінок на одному комп’ютері), корпоративний/багатокористувацький (необмежений доступ у всій організації з пріоритетною підтримкою).
З: Чи є бібліотека потоково безпечною для паралельних перетворень?
В: Так, якщо кожен потік створює власний екземпляр Document. Статичні об’єкти, такі як License, повинні бути встановлені перед початком будь-якої паралельної роботи.
З: Яка версія середовища виконання .NET потрібна AsposeTeXforPython?
В: Пакет постачається з бінарними файлами середовища виконання .NET6 (x64). Вони автоматично завантажуються pythonnet під час першого імпорту; вам не потрібно встановлювати .NET вручну.
З: Як я можу встановити розмір сторінки, орієнтацію та DPI для растрових виходів?
В: Використовуйте об’єкти PageSetup і ImageSaveOptions:
1doc.page_setup.size = tex.PageSize.A4
2doc.page_setup.orientation = tex.PageOrientation.LANDSCAPE
3
4opts = tex.ImageSaveOptions()
5opts.dpi = 300
6doc.save("out.png", opts)З: Чи можу я відобразити LaTeX безпосередньо з рядка або потоку в пам’яті?
В: Абсолютно. Передайте вихідний рядок LaTeX у конструктор або скористайтеся потоком io.BytesIO:
1src = r"\section{Hello}\textbf{World}"
2doc = tex.Document(src) # from string
3# or
4stream = io.BytesIO(src.encode())
5doc = tex.Document(stream) # from streamЗ: Де я можу знайти офіційну документацію, зразки коду та канали підтримки?
В: Перегляньте наступні ресурси:
- Офіційна документація
- Посібник із початку роботи
- Приклади коду та GitHub Gists
- Форум підтримки
- Відстеження проблем (приватне для клієнтів) – надається після покупки
Усі приклади доступні як на Python, так і на C#; код C# можна безпосередньо перекласти завдяки pythonnet.