システム私は、特定の情報を持つスタンプPDFの作業中です。これは、ドキュメントの右上にライムグリーンのテキストボックスを作成することで行います。その後、緑色のスペースの上に特定の文字列を描画します。これは何千ものPDFで動作しますが、ボックスが描画されてもテキストは見えません。テキストを選択して別のものにコピーすることはできますが、PDFでは不可視です。PDFsharp DrawStringテキスト特定のPDFのために目に見えない
残念ながら、私はPDFを共有できませんが、PDF 1.4です。何が原因でしょうか?スタンプ用
コードは:
private static XGraphics drawString(XGraphics xgr, PdfPage page, string printString, int pageNumber = 0)
{
XFont font = new XFont("Verdana", 10, XFontStyle.BoldItalic);
var textSize = xgr.MeasureString(printString, font);
var width = textSize.Width;
var height = textSize.Height;
double xMin = 0;
double yMin = 0;
if (page.Rotate == 90)
{
xMin = page.Height - textSize.Width;
var state = xgr.Save();
xgr.DrawRectangle(XBrushes.LimeGreen, xMin, yMin, width, height);
xgr.Restore(state);
xgr.DrawString(printString, font, XBrushes.Black, new XRect(0, 0, page.Height, page.Width), topRight());
}
else
{
xMin = page.Width - textSize.Width;
var state = xgr.Save();
xgr.DrawRectangle(XBrushes.LimeGreen, xMin, yMin, width, height);
xgr.Restore(state);
xgr.DrawString(printString, font, XBrushes.Black, new XRect(0, 0, page.Width, page.Height), topRight());
}
return xgr;
}
private static XStringFormat topRight()
{
XStringFormat format = new XStringFormat();
format.Alignment = XStringAlignment.Far;
format.LineAlignment = XLineAlignment.Near;
return format;
}
私はXGRに破棄して下さい()を使用して、そのドローの各アクションの前にそれを再初期化しようとしています。私は、コードに見られるように、描画操作とxgrの状態を保存して復元しようとしました。私は幸運のない様々なフォントとフォントサイズを試みました。
PDFに関するどのメタデータが適切であるかを教えてください。私はそれを共有します。
これは、私を助けていません。私の緑色の矩形は問題のPDF上に細かく描画されますが、文字列は描画されません。私のコードは何千ものPDFを処理していたので、このコードは必要ありません。私が何かを見逃していない限り? – JosephGage