Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 插入图像会损坏打开的XML SDK生成的Word文件_Asp.net Core_Openxml Sdk - Fatal编程技术网

Asp.net core 插入图像会损坏打开的XML SDK生成的Word文件

Asp.net core 插入图像会损坏打开的XML SDK生成的Word文件,asp.net-core,openxml-sdk,Asp.net Core,Openxml Sdk,我已经尝试在中修改代码,以便在.Net Core MVC应用程序的表格单元格中插入图像。但是,插入图像只会损坏word文件。 我注意到,当我提取损坏的docx文件时,“media”文件夹在“word”文件夹之外。但是,当我手动将图像添加到docx文件时,“media”文件夹位于“word”文件夹中 …这里的代码。。。 ImagePart ImagePart=wordDoc.MainDocumentPart.AddImagePart(ImagePartType.Jpeg); 使用(FileStre

我已经尝试在中修改代码,以便在.Net Core MVC应用程序的表格单元格中插入图像。但是,插入图像只会损坏word文件。 我注意到,当我提取损坏的docx文件时,“media”文件夹在“word”文件夹之外。但是,当我手动将图像添加到docx文件时,“media”文件夹位于“word”文件夹中

…这里的代码。。。
ImagePart ImagePart=wordDoc.MainDocumentPart.AddImagePart(ImagePartType.Jpeg);
使用(FileStream stream=newfilestream(@$“{u env.WebRootPath}\images\mono.jpg”,FileMode.Open))
{
imagePart.FeedData(流);
}
var元素=新图形(新的DW.Inline(新的DW.Extent(){Cx=99000l,Cy=792000L},
new DW.EffectExtent(){LeftEdge=0L,TopEdge=0L,RightEdge=0L,BottomEdge=0L},
新的DW.DocProperties(){Id=(UInt32Value)11U,Name=“Picture 1”},
新的DW.NonVisualGraphicFrameDrawingProperties(新的A.GraphicFrameLocks(){NoChangeAspect=true}),
新的A.图形(新的A.图形数据(新的图片(
新图片。非可视图片属性(
新建PIC.NonVisualDrawingProperties(){Id=(uint32值)10U,Name=“new Bitmap Image.jpg”},
新图片:NonVisualPictureDrawingProperties()),
新图片。布利普菲尔(
新建A.Blip(新建A.BlipExtensionList(新建A.BlipExtension(){Uri=“{28A0092B-C50C-407E-A947-70E740481C}”){Embed=wordDoc.MainDocumentPart.GetIdOfPart(imagePart),压缩状态=A.BlipCompressionValues.Print,},
新建A.Stretch(新建A.FillRectangle()),
新图片形状属性(新A.2D(
新的A.Offset(){X=0L,Y=0L},
新的A.extensts(){Cx=99000L,Cy=792000L}),
新建A.PresetGeometry(新建A.AdjustValueList(){Preset=A.ShapeTypeValues.Rectangle})){Uri=”https://schemas.openxmlformats.org/drawingml/2006/picture“}”){DistanceFromTop=(UINT32值)0U,DistanceFromBottom=(UINT32值)0U,DistanceFromLeft=(UINT32值)0U,DistanceFromRight=(UINT32值)0U,EditId=“50D07946”};
表table0=新表();
TableProperties props0=新的TableProperties(…此处代码…);
表0.附件1(项目0);
var tr0=新表行();
var tc0=新的TableCell();
var pp0=新段落属性(新间距介于两行之间(){After=“0”},新对齐(){Val=justicationvalues.Center});
var rn0=新运行(元素);
var pg0=新段落(pp0,rn0);
追加(新的TableCellProperties(新的TableCellWidth{Type=TableWidthUnitValues.Dxa,Width=“1792”})),新的HorizontalMerge{Val=MergedCellValues.Restart});
tc0.Append(pg0);
tr0.Append(tc0);
表0.追加(tr0);
正文.附件(表0);
追加文件(正文);
…代码在这里。。。

我已经弄明白了。MSDN文档是罪魁祸首

MSDN文档中的此行:

                     ) { Uri = "https://schemas.openxmlformats.org/drawingml/2006/picture" })
无效,因为
https
应该是
http


更改使文档打开时没有问题。

我也有同样的问题,目前正在尝试找到解决方案。我相信存储图像的文件夹并不是非常重要,因为图像的路径保存在.rel文件中。我已经测试并验证了这一点。非常感谢你!我可以问一下您是如何发现的吗?遗憾的是,我一直在修改和删除docx中的XML片段,直到它起作用,所以我最终发现这就是罪魁祸首。我在MS Word文件和使用相同内容生成的SDK之间打开了一个同志。
                     ) { Uri = "https://schemas.openxmlformats.org/drawingml/2006/picture" })