AsposeTeXforPython – FAQ
Q : Qu’est-ce qu’AsposeTeXforPython ?
R : AsposeTeXforPython est une API purement Python (construite sur la bibliothèque AsposeTeX .NET via pythonnet) qui restitue et convertit les documents LaTeX/TeX en PDF, XPS, SVG, PNG, JPEG, BMP, TIFF et d’autres formats d’image sans nécessiter de distribution TeX externe. Il s’exécute en cours de processus et convient aux services Web, aux applications de bureau et aux générateurs de rapports automatisés.
Q : Comment installer AsposeTeXforPython ?
R : Exécutez pip install aspose-tex-python-net. Le package regroupe automatiquement le runtime « pythonnet » requis. Installez-le dans n’importe quel environnement virtuel (Windows, Linux, macOS) avec Python3.8 ou version ultérieure. Vérifiez l’installation avec :
1import aspose.tex as tex
2print(tex.__version__)Q : Ai-je besoin d’une distribution TeX locale (MiKTeX, TeXLive, etc.) ?
R : Non. Toute la logique d’analyse et de rendu est intégrée à AsposeTeX, vous n’avez donc jamais besoin d’un moteur TeX externe. La bibliothèque comprend plus de 300 packages LaTeX de base et des fichiers de classe courants prêts à l’emploi.
Q : Comment puis-je convertir un fichier .tex en PDF avec quelques lignes de code ?
R :
1import aspose.tex as tex
2
3doc = tex.Document("sample.tex") # load LaTeX source
4doc.save("sample.pdf", tex.SaveFormat.PDF) # write PDFVous pouvez également créer un document à partir d’une chaîne (tex.Document(latex_source)) ou d’un flux en mémoire.
Q : Quels formats de sortie AsposeTeXforPython peut-il générer ?
R : PDF, XPS, SVG, PNG, JPEG, BMP et TIFF. Chaque format peut être contrôlé via des objets SaveOptions spécifiques (par exemple, PdfSaveOptions, ImageSaveOptions, SvgSaveOptions).
Q : Comment intégrer des polices personnalisées dans le PDF généré ?
R : Enregistrez un dossier de polices personnalisé avant le rendu :
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())Par défaut, toutes les polices utilisées sont intégrées ; désactivez l’intégration avec PdfSaveOptions.embed_fonts = False.
Q : Quels packages et classes LaTeX sont pris en charge dès le départ ?
R : Plus de 300 packages de base (par exemple, amsmath, graphicx, hyperref, xcolor, tikz, pgfplots, booktabs) et classes communes (article, report, book, memoir).
Q : Comment puis-je utiliser un fichier « .sty » ou un fichier de classe tiers qui n’est pas intégré ?
A : Placez le fichier .sty/.cls dans le même répertoire que le document source ou ajoutez son dossier aux chargeurs de ressources du document :
1doc = tex.Document("mydoc.tex")
2doc.resource_loaders.append(tex.FolderResourceLoader(r"C:\MyLatexPackages"))Le moteur chargera automatiquement les fichiers personnalisés lors de la prochaine conversion.
Q : Quelles sont les principales limitations du moteur ?
R :
| Limitation | Détails |
|---|---|
Échappement shell (\write18) | Désactivé pour des raisons de sécurité. |
| Externalisation complète de TikZ | Non prise en charge ; la plupart des graphiques TikZ sont rendus en interne, mais les dessins extrêmement complexes peuvent échouer. |
| Couverture des polices Unicode | Seules les polices TrueType/OpenType avec des jeux de glyphes complets sont entièrement prises en charge ; les anciennes polices Type1 peuvent nécessiter une conversion. |
| Documents très volumineux (> 500 pages) | Peuvent consommer une quantité importante de mémoire ; envisagez le flux de pages avec Document.save(output_stream, options). |
Q : Comment puis-je appliquer une clé de licence et quels modèles de licence sont disponibles ?
R : Appliquez la licence une fois par processus :
1import aspose.tex as tex
2tex.License().set_license("Aspose.Total.NET.lic")Options de licence : essai gratuit (limite de 10 pages, sans filigrane), développeur/machine unique (pages illimitées sur une machine), entreprise/multiposte (illimité dans toute l’organisation avec prise en charge prioritaire).
Q : La bibliothèque est-elle thread-safe pour les conversions parallèles ?
R : Oui, à condition que chaque thread crée sa propre instance Document. Les objets statiques tels que la « Licence » doivent être définis avant le début de tout travail parallèle.
Q : De quelle version du runtime .NET AsposeTeXforPython a-t-il besoin ?
R : Le package est livré avec les binaires d’exécution .NET6 (x64). Ils sont chargés automatiquement par pythonnet lors du premier import ; vous n’avez pas besoin d’installer .NET manuellement.
Q : Comment puis-je définir la taille de la page, l’orientation et le DPI pour les sorties raster ?
R : Utilisez les objets PageSetup et 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)Q : Puis-je restituer LaTeX directement à partir d’une chaîne ou d’un flux en mémoire ?
R : Absolument. Transmettez la chaîne source LaTeX au constructeur ou utilisez un flux 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 streamQ : Où puis-je trouver la documentation officielle, des exemples de code et des canaux d’assistance ?
R : Consultez les ressources suivantes :
- Documentation officielle
- Guide de démarrage
- Exemples de code et GitHub Gits
- Forum d’assistance
- Issue Tracker (privé pour les clients) - Fourni après l’achat
Tous les exemples sont disponibles en Python et C# ; le code C# peut être directement traduit grâce à pythonnet.