Summary
Converting a .vsdx to PDF via Aspose.Diagram Cloud, text explicitly styled with Arial renders in a fixed-pitch/serif-numeral font (visually consistent with Courier New — e.g. the digit “1” has a foot serif, which Arial’s does not) instead of Arial or any reasonable substitute. PdfSaveOptions.DefaultFont has no observable effect on this, under any value or font source we’ve tried.
Steps to reproduce
PUT /diagram/storage/file/{name}.vsdx— upload a.vsdxcontaining shapes styled with Arial.POST /diagram/{name}.vsdx/saveAs?newfilename={name}.pdf&IsOverwrite=truewith body:{ "FileName": "{name}.pdf", "Format": "pdf", "SaveOptions": { "SaveFormat": "pdf", "DefaultFont": "Arial" } }GET /diagram/storage/file/{name}.pdf— download the result.- Observe: Arial-styled text is rendered in a fixed-pitch font, not Arial.
What we’ve already ruled out
-
The stateless endpoint (
PUT /diagram/{name}/convert) can’t carry save options at all. Appending any second multipart part (e.g. aSaveOptionsDataJSON part, mirroring the pattern documented for Aspose.Words Cloud’s online endpoints) fails outright:HTTP 500 {"error":{"code":"internalError","message":"Expected only one part in the MIME multipart request."}}So no font/save-option control is possible through that endpoint under any approach.
-
SaveOptionson thesaveAsendpoint is genuinely parsed and applied — this isn’t a silent-ignore issue. SettingSaveOptions.Complianceto"PdfA1b"/"PdfA1a"produces a materially different, correctly-conformant PDF each time (confirmed via%PDF-1.4header vs.%PDF-1.5baseline, larger file size from full font embedding, and genuinepdfaid:conformance/pdfaid:partXMP metadata and/OutputIntentsmatching the requested level). This proves the request body is correctly deserialized and acted on by the endpoint. -
DefaultFontitself never changes the output, tried as:"Helvetica"(a standard PDF font, guaranteed available without embedding)"Arial", with the actual Microsoft Arial.ttf (from a licensed Windows install) uploaded to the sameFontsfolder, replacing the substitute
Both produced pixel-identical fallback output to the baseline with no
DefaultFontset at all.
Questions
- Is
PdfSaveOptions.DefaultFontintended to affect substitution for a named-but-unresolvable font (e.g. a shape explicitly styled “Arial” where Arial isn’t installed on the render host), or only for characters with no font assigned? - Does Aspose.Diagram Cloud support a custom-fonts mechanism analogous to the storage
Fontsfolder used by Slides/Words/Imaging/Cells Cloud? Our testing suggests it does not consult that folder at all for either name-based resolution orDefaultFontfallback. - What font, if any, does Aspose.Diagram Cloud’s Linux render host actually have installed for a plain sans-serif family, and is there any supported way (SaveOptions field, account setting, or otherwise) to point Visio-to-PDF conversion at a specific font for text whose original font isn’t available server-side?