【问题标题】:VBA Paste PDF onto powerpoint terrible qualityVBA将PDF粘贴到PowerPoint中质量很差
【发布时间】:2017-08-12 15:12:06
【问题描述】:

我编写了一个宏来使用 AddOLEObject 函数将 PDF 粘贴到 powerpoint 中。它按预期工作,只是图像质量有很大损失。 PDF 是由流式细胞术软件(如果有人熟悉的话)生成的几张图的单个 8.5x11 页。粘贴时,缺少一些轴和代码以及字母和数字的碎片。这显然是不可取的。

这是我的代码的相关部分:

Set FlowScript2 = Application.FileDialog(msoFileDialogFilePicker)
With FlowScript2
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "PDFs", "*.pdf"
    .Title = "Select Lentivirus Transduction Flow Results File"
    .Show
End With

If FlowScript2.SelectedItems.Count <> 0 Then

    FlowFile =Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)

    Set shp = sld.Shapes.AddOLEObject(Left:=50.4, Top:=110, Width:=792, Height:=612, FileName:=FlowFile, Link:=False)
    shp.Line.Visible = msoTrue

    With shp.PictureFormat
        .CropLeft = 45
        .CropRight = 45
        .CropTop = 52
        .CropBottom = 210
    End With

End If

我尝试粘贴不同尺寸的图像,但没有成功。我在某处读到使用 Adob​​e 对象可能会更好,但是我希望将最终结果分发给其他用户,并且担心该版本可能不会无处不在。不知所措。任何帮助是极大的赞赏。谢谢!

【问题讨论】:

    标签: vba pdf powerpoint


    【解决方案1】:

    您可以插入带有图标的文档,然后在图标前面放置一个 ActiveX 图片,然后为该图片创建自己的优化图像并将其附加到 ActiveX 图片属性。

    最后,将一些代码附加到 ActiveX 控件的单击事件中:

    Private Sub Image1_Click()
      Dim shp As Shape
      Set shp = Slide1.Shapes("Object 1")
      shp.OLEFormat.DoVerb 0
    End Sub
    

    【讨论】:

    • 嗨@ThunderFrame,谢谢你的帖子。这是一个很好的建议,但我想避免生成单独的图像,因为我认为用户不会愿意这样做。还有其他处理 PDF 的方法吗?
    • 我不认为 VBA 可以让您确定质量,并且缩放显然是有问题的。另一种(更丑陋的)替代方法是将 PDF 添加为图标,然后设置形状的背景 - 但图标仍然在形状前面可见。我不知道您有多少时间/精力,但您可以考虑自动创建 PDF 缩略图,然后使用我的主要答案中提到的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 2011-11-21
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2015-02-06
    相关资源
    最近更新 更多