Se siete mixing PDFSharp and MigraDoc, come faccio io (che significa che avete un oggetto PDFsharp documento PdfDocument e un oggetto MigraDoc documento doc , che viene visualizzato come parte di documento), tutto non è così semplice. L'esempio, che Team PDFSharp ha dato funziona solo quando si utilizza MigraDoc separatamente.
così si dovrebbe usare in questo modo:
- Assicurarsi che si sta eseguendo il rendering tuo documento MigraDoc prima di rendere l'oggetto MigraDoc al PDF tagliente XGraphics GFX.
- Utilizzare l'hack per impostare la codifica per l'oggetto gfx.
XGraphics gfx = XGraphics.FromPdfPage(page);
// HACK²
gfx.MUH = PdfFontEncoding.Unicode;
gfx.MFEH = PdfFontEmbedding.Always;
// HACK²
Document doc = new Document();
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true, PdfFontEmbedding.Always);
pdfRenderer.Document = doc;
pdfRenderer.RenderDocument();
MigraDoc.Rendering.DocumentRenderer docRenderer = new DocumentRenderer(doc);
docRenderer.PrepareDocument();
docRenderer.RenderObject(gfx, XUnit.FromCentimeter(5), XUnit.FromCentimeter(10), "12cm", para);
Per 1.5.x-BETAx
let gfx = XGraphics.FromPdfPage(page)
gfx.MUH <- PdfFontEncoding.Unicode
let doc = new Document()
let pdfRenderer = new PdfDocumentRenderer(true, PdfFontEmbedding.Always)
pdfRenderer.Document <- doc
pdfRenderer.RenderDocument()
let docRenderer = new DocumentRenderer(doc)
docRenderer.PrepareDocument()
docRenderer.RenderObject(gfx, XUnit.FromCentimeter 5, XUnit.FromCentimeter 10, "12cm", para)
fonte
2016-02-28 14:20:28
Thanks a lot! :) Ha funzionato come un fascino. –
Quindi WinANSI è il set di caratteri predefinito per MigraDoc? – Sunil
I file PDF hanno codifica PDF (molto simile a ANSI) o Unicode. –