C# 使用SVG标记生成新PDF

C# 使用SVG标记生成新PDF,c#,asp.net,svg,autodesk-forge,itext7,C#,Asp.net,Svg,Autodesk Forge,Itext7,我正在尝试使用扩展名Autodesk.PDF创建的SVG生成新的PDF Autodesk.Viewing.Initializer(options, function onInitialized() { viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('MyViewerDiv')); viewer.setTheme("light-theme&

我正在尝试使用扩展名Autodesk.PDF创建的SVG生成新的PDF

        Autodesk.Viewing.Initializer(options, function onInitialized() {
            viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('MyViewerDiv'));
            viewer.setTheme("light-theme");
            viewer.start();

            viewer.loadExtension('Autodesk.PDF').then(() => {
                viewer.loadModel(path, viewer);
                viewer.loadExtension("Autodesk.Viewing.MarkupsCore")
                viewer.loadExtension("Autodesk.Viewing.MarkupsGui")
            });
        });
我可以加载PDF,但之后我真的不知道该怎么办

在控制台中,我设法发现我可以得到一个列表,我可以迭代它,并将if保存在一个变量中

我在后端使用iTextSharp为我的应用程序管理PDF,因此如果我可以使用它将SVG添加到PDF中,那将是一件好事,但我愿意尝试其他LIB

这就是我试图添加SVG的方式:

        var reader = new PdfReader(new MemoryStream(File.ReadAllBytes(HttpContext.Current.Server.MapPath(path))));
        var pdfDocument = new PdfDocument(reader);
        var writer = new PdfDocument(new PdfWriter(HttpContext.Current.Server.MapPath("newdoc.pdf")).SetSmartMode(true));
        pdfDocument.CopyPagesTo(1, 1, writer);
        //var appendedHtml = "<html><body>";
        var appendedHtml = "<svg xmlns='http://www.w3.org/2000/svg' version='1.1' baseProfile='full' layer-order-id='markups-svg' style='position: absolute; left: 0px; top: 0px; transform: scale(1, -1); touch-action: none; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);' width='1105' height='690' viewBox='4.3959721282740105 4.558617165575239 30.58327865600586 19.097249984760307' pointer-events='painted' cursor='crosshair'><metadata><markup_document xmlns='http://www.w3.org/1999/xhtml' data-model-version='4'></markup_document></metadata><g cursor='inherit' pointer-events='stroke' style='touch-action: manipulation; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);'><metadata><markup_element xmlns='http://www.w3.org/1999/xhtml' stroke-width='2.7548209366391347' stroke-color='#ff0000' stroke-opacity='1' fill-color='#ff0000' fill-opacity='0' type='rectangle' position='22.89795796238312 13.271543227939889' size='14.605644607543944 10.309867361327829' rotation='0'></markup_element></metadata><path id='markup' d='M -5.925411835452405 -3.777523212344347 l 11.85082367090481 0 l 0 7.555046424688694 l -11.85082367090481 0 z' stroke-width='2.7548209366391347' stroke='rgba(255,0,0,1)' fill='none' transform='translate( 22.89795796238312 , 13.271543227939889 ) rotate( 0 )'/></g></svg>";
        byte[] bytes = Encoding.UTF8.GetBytes(appendedHtml);
        SvgConverter.DrawOnDocument(new MemoryStream(bytes), writer, 1);
        pdfDocument.Close();
        writer.Close();
var reader=newpdfreader(newmemorystream(File.ReadAllBytes(HttpContext.Current.Server.MapPath(path)));
var pdfDocument=新的pdfDocument(读卡器);
var writer=newpdfdocument(newpdfwriter(HttpContext.Current.Server.MapPath(“newdoc.pdf”)).SetSmartMode(true));
pdfDocument.CopyPagesTo(1,1,编写者);
//var appendedHtml=“”;
var appendedHtml=“”;
byte[]bytes=Encoding.UTF8.GetBytes(appendedHtml);
SvgConverter.DrawOnDocument(新内存流(字节),writer,1);
pdfDocument.Close();
writer.Close();
新的PDF文件已正确生成,但没有SVG

编辑: 显然,样式转换:缩放(1,-1)正在使我的SVG消失在PDF上,没有它,我可以看到SVG,但它位于错误的位置,大小也错误

左边是正确的,右边是通过我的代码后

在锻造方面,恐怕我们帮不了多少忙。Forge Viewer中的Autodesk.PDF扩展仅支持读取PDF,而不支持写入PDF。您可以在Forge Viewer中将当前视图输出为光栅图像,并将标记SVG绘制到其中(请参阅)。

iTextSharp不支持SVG。您是否建议使用其他库?可能有解决方法?