Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
VBA使用非标准字体将Excel转换为PDF_Vba_Excel_Pdf_Fonts - Fatal编程技术网

VBA使用非标准字体将Excel转换为PDF

VBA使用非标准字体将Excel转换为PDF,vba,excel,pdf,fonts,Vba,Excel,Pdf,Fonts,我正在尝试使用ExportAsFixedFormat将excel工作表导出为PDF,我的代码是创建PDF,但它用转换后的PDF中的标准字体替换了excel文件中的Myriad Pro 出口代码如下: awb.Sheets("PIN").ExportAsFixedFormat Type:=xlTypePDF, _ fileName:=strFileName, _ Quality:=xlQualityStandard, _

我正在尝试使用ExportAsFixedFormat将excel工作表导出为PDF,我的代码是创建PDF,但它用转换后的PDF中的标准字体替换了excel文件中的Myriad Pro

出口代码如下:

awb.Sheets("PIN").ExportAsFixedFormat Type:=xlTypePDF, _
                 fileName:=strFileName, _
                 Quality:=xlQualityStandard, _
                 IncludeDocProperties:=True, _
                 IgnorePrintAreas:=False, _
                 OpenAfterPublish:=False

有没有办法强迫Adobe使用我设置的字体,而不是恢复到标准字体?当我手动将一张工作表转换为PDF时,效果很好。

如果Acrobat Dilleter安装在每台使用您的文件的机器上,您可以使用它。。。如果是这样,您可以这样做:

首先,在蒸馏器的打印机设置中,您需要禁用“仅依赖系统字体”选项;不要使用文档字体,否则会收到错误消息

其次,在VB编辑器的“工具”菜单中,转到“引用”选项。您需要查找并检查Acrobat蒸馏器参考

代码: 这应该是一个很好的起点


注意:对于不同版本的蒸馏器,蒸馏器的对象名称和打印机名称可能不同。

当我手动将一张纸转换为PDF时,效果很好。如何转换?文件|打印还是文件|另存为?我有一个Acrobat excel外接程序,可以转换为pdf格式-在首选项中,它有一个选项“依赖系统字体”,可以取消选中。那么这个外接程序是如何工作的呢?您是否需要单击文件|打印?AFAIK,.ExportAsFixedFormat不使用AdobeTo来使用加载项进行转换-我的excel菜单中有一个acrobat选项卡,我选择了该选项卡,并有一个转换为pdf选项,然后使用预设的分页符等将所选工作表保存为pdf文件。谢谢,稍后将尝试:我已设法调整它以生成PDF文件,但现在我遇到的问题使我恢复到exportasfixedformat问题-当我尝试使用上述方法转换一张excel工作表时,我得到%%[警告:空作业。未生成PDF文件。]%%错误,工作表中肯定有内容,该方法在我们使用的几乎相同的excel工作表上运行良好-有什么想法吗?用标准打印件试试,看看你得到了什么。我猜你的打印区域很奇怪。
Sub ExportPDF()
    Dim acro As New ACRODISTXLib.PdfDistiller6
    Dim wk As Worksheet
    
    Const opFile As String = "C:\test\test.ps"
    Const PDFFile As String = "C:\test\test.pdf"
    Const PrinterName As String = "Adobe PDF"
    
    Set wk = Sheet1
    
    wk.PrintOut ActivePrinter:=PrinterName, PrintToFile:=True, PrToFileName:=opFile
    
    acro.FileToPDF opFile, PDFFile, ""
    
End Sub