A bespoke SVG to PDF/PNG renderer for the GlycoDraw platform, specialized in accurately rendering glycan structures with support for chemical notations and path-based text positioning.
- Accurate SVG to PDF and PNG conversion for glycan structures
- Support for text on paths with proper positioning and orientation
- Special handling for monosaccharide properties like "Df" with proper styling
- Gradient fills for circles and shapes
- Precise connection path rendering between glycan elements
- Support for various SVG path commands
pip install glycorenderfrom glycorender import convert_svg_to_pdf, convert_svg_to_png
# Convert SVG file to PDF
with open('glycan_structure.svg', 'r') as f:
svg_data = f.read()
convert_svg_to_pdf(svg_data, 'output.pdf')
# Convert SVG file to PNG
convert_svg_to_png(svg_data, 'output.png')
# Or directly from SVG data
svg_data = """..."""
convert_svg_to_pdf(svg_data, 'output.pdf')
convert_svg_to_png(svg_data, 'output.png')GlycoRender is specifically designed for:
- Converting glycan structure diagrams from GlycoDraw to publication-quality PDFs or PNGs
- Preserving the exact layout and styling of complex carbohydrate representations
- Ensuring chemical notations are properly formatted in the output
- Maintaining the correct connections between monosaccharide units
Converts SVG data to a PDF file.
Parameters:
svg_data(str or bytes): SVG content either as a string or bytespdf_file_path(str): Path where the output PDF should be saved
Converts SVG data to a PNG file.
Parameters:
svg_data(str or bytes): SVG content either as a string or bytespng_file_path(str): Path where the output PNG should be saved
<path>: Full support for path commands (M, L, H, V, Z, etc.)<circle>: Support for basic circles and gradient-filled circles<rect>: Support for rectangles with stroke and fill<text>and<textPath>: Support for text placement along paths with proper orientation<defs>: Support for path and gradient definitions<radialGradient>: Support for radial gradients with stops
- ReportLab: For PDF generation
- PyMuPDF: For PNG conversion
- Pillow: For PNG metadata injection
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
