- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要能够通过 .Net (VB) VSTO Word AddIn 在 Word 文档中插入图像。
问题是我需要插入它,所以它最终的结果就像用户使用“拖放”来插入图像,而不是“插入图片”工具栏按钮一样。
通常我会这样做:
wdRange.InlineShapes.AddPicture(imagePath, LinkToFile:=False, SaveWithDocument:=True)
但这复制了“插入图片”按钮的行为。
我需要复制拖放方法的原因是,在某些情况下打印时图片的 react 不同。
我可以通过在文档标题中插入一个大的彩色矩形并将图像放置在文档正文中来复制此操作,因此它最终位于彩色矩形的顶部。如果插入的图像具有透明度(就像许多 Logo 一样),在某些情况下,打印时最终会出现深色背景,而不是完全透明。(我还没有找到重现该问题所需的确切情况,但似乎需要某种打印机驱动程序组合,即 PCL 或 PS。)
为了让调试这个问题变得更加困难,当打印到 PDF 打印机时它是不可见的,它似乎只发生在纸上。并且仅在一些罕见的配置中。彩色和黑白打印机、新打印机(<1 年)和旧打印机都可能发生这种情况。
打印时上述场景的扫描示例,其中两个图像放置在彩色矩形上。使用“插入图片”按钮插入一张图像(具有深色背景),通过拖放插入另一张图像(具有正确的透明度)。两个图像都是使用相同的 .png 文件插入的。 (虽然一个的缩放比例与另一个略有不同,但我已经进行了彻底的测试,缩放或移动图像不会影响问题。)
我尝试在拖放图像时录制宏,但没有录制任何内容:-\
作为一种替代解决方案,也许插入的图像的某些属性可以更改,以确保它的行为就像通过拖放插入的图像一样?这是完全可以接受的!
注意:我无法在内部可用的 8 台打印机中复制此问题,并且仅在少数(大)客户现场遇到此问题。 因此不幸的是,测试建议的解决方案可能需要一些时间 :-(
更新事实证明,当使用从 Windows 10 拖放到 Word 2016 时,我只能复制具有正确透明背景的图片。Windows 7 生成不同的结果,因此我之前的测试(在 Windows 7 中进行)无效。
在 Word 中选择时,两个图像元素(一个通过“插入图片”插入,一个通过拖放插入)看起来不同。错误的图片(“插入图片”)具有白色选择标记,如下所示:
右图(从 Windows 10 拖放)具有灰色选择标记,如下所示:
我用于测试的图像在这里(“Transparent.gif”。两张图片的图像文件相同)
我检查了每个图像的 OpenXML 标记,它们非常不同。错误的图片最终会像 w:drawing
元素一样:
<w:drawing>
<wp:anchor distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251662336" behindDoc="0" locked="0" layoutInCell="1" allowOverlap="1">
<wp:simplePos x="0" y="0"/>
<wp:positionH relativeFrom="margin">
<wp:align>left</wp:align>
</wp:positionH>
<wp:positionV relativeFrom="paragraph">
<wp:posOffset>817245</wp:posOffset>
</wp:positionV>
<wp:extent cx="3048000" cy="647700"/>
<wp:effectExtent l="0" t="0" r="0" b="0"/>
<wp:wrapSquare wrapText="bothSides"/>
<wp:docPr id="9" name="Billede 9"/>
<wp:cNvGraphicFramePr>
<a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/>
</wp:cNvGraphicFramePr>
<a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="9" name="Transparent.gif"/>
<pic:cNvPicPr/>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId1">
<a:extLst>
<a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}">
<a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/>
</a:ext>
</a:extLst>
</a:blip>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
<a:xfrm>
<a:off x="0" y="0"/>
<a:ext cx="3048000" cy="647700"/>
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst/>
</a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData>
</a:graphic>
<wp14:sizeRelH relativeFrom="page">
<wp14:pctWidth>0</wp14:pctWidth>
</wp14:sizeRelH>
<wp14:sizeRelV relativeFrom="page">
<wp14:pctHeight>0</wp14:pctHeight>
</wp14:sizeRelV>
</wp:anchor>
</w:drawing>
右图最终成为 v:shape
,标记少得多:
<v:shape id="_x0000_s2049" type="#_x0000_t75" style="position:absolute;margin-left:.3pt;margin-top:0;width:240pt;height:51pt;z-index:251661312;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:bottom;mso-position-vertical-relative:text;mso-width-relative:page;mso-height-relative:page">
<v:imagedata r:id="rId2" o:title="Transparent"/>
<w10:wrap type="square"/>
</v:shape>
到目前为止,我还无法通过 VBA 或 VB.NET(通过 VSTO AddIn)重新创建后者。
如果有人能解决这个问题,我相信问题就解决了。
这是我正在使用的示例文档的链接,顶部图片打印正确,底部图片打印时背景颜色较深(不幸的是,在某些打印机上,不是我的打印机。) Simple-test.docx(所有内容都放在页眉中,因为根据我的测试人员的说法,这可能是一个因素。)
最佳答案
设置 <a:noFill/>
您需要设置形状的填充属性。应该执行类似于以下内容的操作,其中 inlShape
是设置为插入图像的对象:
inlShape.Fill.ForeColor.RGB = -1
inlShape.Fill.Visible = False
请注意,必须同时设置 ForeColor 和 Visible 属性。仅设置其中之一不会产生您需要的结果。
关于ms-word - 将图像添加到 Word 文档,就像拖放一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45584043/
我想标记一个字符串,例如 Best Beat Makers,以几乎类似于 NGram 的方式为每个单词生成标记,例如: IN: "Best Beat Makers" OUT: ["Best", "B
这个问题在这里已经有了答案: Is there a way to word-wrap long words in a div? (6 个答案) 关闭 7 年前。
我想编写一个 Python 代码来检查字符串是否包含类似于以下内容的内容: 'word.Word' => 将其替换为 'word.\nWord'。 smallLetter.capitalLetter
我想编写一个 Python 代码来检查字符串是否包含类似于以下内容的内容: 'word.Word' => 将其替换为 'word.\nWord'。 smallLetter.capitalLetter
我有以下正则表达式: ^--([\w|-]+) 我想匹配 --word --no-word 但不是: ---word ----word 最佳答案 将表情更改为 ^--(\w[-\w]*) 这需要在两个
在我的加载项中,我需要为每个打开的文档创建一个任务 Pane 。在加载项的启动方法中,我订阅了 ApplicationEvents4_Event.NewDocument 和 Application.D
我使用 word javascript api 开发了一个 word 插件。我的文档 .docx 文件在服务器上,我需要在加载项中单击按钮打开该 .docx 文档作为新的 Word 文档。 请指导我如
我需要在某个地方修复一些 CSS,因为我的文本没有环绕,如果它是一个非常长的单词,它会无限期地继续下去。 在大多数情况下,我在我的 CSS 文件中尝试了 word-wrap: break-word;
这个问题在这里已经有了答案: What is the difference between "word-break: break-all" versus "word-wrap: break-word
这个问题在这里已经有了答案: What is the differect between word-wrap and overflow-wrap? [duplicate] (1 个回答) Is t
问题详细描述如下: 给定两个单词(beginWord 和 endWord)和字典的单词列表,找出是否存在从 beginWord 到 endWord 的转换序列,这样: 一次只能更改一个字母 每个转换后
我以前没有使用过邮件合并字段,我发现的所有内容都要求您在能够插入合并字段之前选择一个数据源。我想要做的就是将字段放在 word 文档上,并且在代码使用它之前不要将其合并。我基本上是在创建文档模板。这在
将此代码放置在ThisDocument_Startup之外的Word文档级VSTO解决方案中的某个位置(创建带单击事件的功能区按钮): int zero = 0; int divideByZero =
有没有办法在没有加载项的情况下启动 MS Word(仅此实例)?我只能找到一种方法来完全禁用加载项。 最佳答案 来自Word command line switches documentation ,
有没有办法在没有加载项的情况下启动 MS Word(仅此实例)?我只找到一种方法来完全禁用加载项。 最佳答案 来自Word command line switches documentation ,您
当使用 URI 方案从网页上托管的 word 模板打开新文档时不起作用。 https://msdn.microsoft.com/en-us/library/office/dn906146.aspx 这
我的问题: overflow-wrap: break-word 和 word-break: break-word 有区别吗? 非重复: 这里有一些现有的问题,乍一看可能是重复的,但实际上不是。 Wha
我希望使用 WordNet 从一组基本术语中寻找相似术语的集合。 例如,单词'discouraged' - 潜在的同义词可能是:daunted, glum, deterred, pessimistic
部署 Word Add in 时,发布没有错误。复制文件后出现以下错误。 我没有太多事情要做。这是堆栈跟踪。 ************** Exception Text **************
我需要一个 Java 正则表达式来匹配除某个单词之外的任何单词,同时包含另一个单词。 例如字符串中不能包含Apple,但必须有Peach。 Apple and Peach - Not match Pe
我是一名优秀的程序员,十分优秀!