Excel VBA "Rely on system fonts" error

Based upon what I read in another thread, I may be missing some information on going directly to PDF rather than through a PostScript file. You tell me.
I'm driving multiple Excel VBA processes via MSAccess. I wish to print multiple charts from the same workbook to separate PDFs.
The first iteration works fine, creating a PDF of the chart with a specified filename. Subsequent iterations produce this error message:
When you create an Adobe PostScript file you must rely on system fonts and use document fonts.
Please go to the printer properties, “Adobe PDF Settings” page and turn OFF the option “Rely on system fonts only;
do not use document fonts.”
Note: Turning off the "Rely" option doesn't prevent the abend on the second iteration. Conclusion, a switch is being set that isn't being turned off. The real question is, how can I reset that switch, or avoid the issue altogether?
The code below creates a PostScript file:
  .ActiveWindow.SelectedSheets.PrintOut Copies:=1, collate:=True, ActivePrinter:="Adobe PDF on Ne00:", printtofile:=True, collate:=True, prtofilename:=PSFileName
Note: Another thread in this forum indicated that it was unnecessary to create a PS file and that Excel VBA can create a PDF directly.
If this is a distiller issue, and I can avoid distiller that would be great! But this is the code I use to convert the PS file to a PDF.
Set myPDF = New PdfDistiller
myPDF.FileToPDF PSFileName, PlotPath & PlotName, ""
Any solutions?
Thanks,
Jnana

Yes. The Registry is locked down according to IT. I can't even access a command line.
I tried a VBA routine that calls SHELL to invoke regedit to add an entry for creating a pdf. When I ran it, it belched on the SHELL call with an error message indicating that regedit was only available to an administrator.
I somewhat doubt that the inability to update the registry has anything to do with the fact that the creation of a PostScript file is successful the first time, but unsuccessful the second time.
I've included the code I've tried below.
Any other ideas?
Thanks,
Jnana

Similar Messages

  • Setting for "Rely on system fonts" does not work

    Hello,
    Some time ago I wrote a VBA function that would print a worksheet to pdf. It worked great. I reformatted my system, and now the code no longer works. When I run the routine, I receive the error message, "When you create a PostScript file, you must reply on system fonts and use document fonts. Please go to the printer properties, 'Adobe PDF Settings' page and turn OFF the option 'Rely on system fonts only; do not use document fonts."
    I have changed this setting within the Adobe printer setting in Excel, I have changed it in both the 'Printing Preferences" and "Printer Properties" with the Devices and Printers Windows dialog, and I have confirmed that it is turned off in the binary registry key "HKEY_CURRENT_USER\Printers\DevModePerUser\Adobe PDF". Also, I have applied the Acrobat 9.4.2 patch. Yet still I get the message when my code is executed....
    There were a few changes between my system from before my reformatting. The common items were Windows7 64-bit, Adobe Acrobat 9. The changes were that I went from Microsoft Office 2010 64-bit to Office 2010 32-bit. Windows 7 SP1 is now installed. Also, both Acrobat and Office are installed on my internal "Data" drive, rather than the "C" drive where my operating system is installed.
    Although I do not see an issue with code, since it worked for months, I have included it below (the printing code is at the end). Any help would be GREATLY appreciated!
    Public Sub EnumOrder(ByVal lngLine As Long)
    'lngLine is the line number to start enumeration at
    Dim strStore As String
    Dim strFileName As String
    Dim strTmpPath As String
    Dim strPDFPath As String
    Dim c As Long
    Dim x As Long
    Dim lngErr As Long
    Dim wsPicklist As Worksheet
    Dim wsTemplate As Worksheet
    Dim oPDF As PdfDistiller
    Set oPDF = New PdfDistiller
    Set wsPicklist = Worksheets("Phase II Picklist")
    Set wsTemplate = Worksheets("Template")
    strStore = wsPicklist.Cells(lngLine, 1).Value
    ' Clear formatted border on order template
    wsTemplate.Activate
    wsTemplate.Range("A7:L56").Select
    Selection.ClearContents
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    wsPicklist.Activate
    ' Initialize variables
    strFileName = wsPicklist.Cells(lngLine, 1) & "-" & wsPicklist.Cells(lngLine, 2) & " " & Format(wsPicklist.Cells(lngLine, 4), "mm-dd-yy") & " Team" & Format(wsPicklist.Cells(lngLine, 3), "00")
    c = 7
    x = lngLine
    ' Add store order data to the template
    With wsTemplate
        ' Add header data to the order template
        .Cells(1, 2) = wsPicklist.Cells(lngLine, 1)  ' Store #
        .Cells(2, 2) = wsPicklist.Cells(lngLine, 3)  ' Team #
        .Cells(4, 2) = wsPicklist.Cells(lngLine, 4)  ' Deliver By
        .Cells(1, 5) = wsPicklist.Cells(lngLine, 13) ' Ship To Name
        .Cells(2, 5) = wsPicklist.Cells(lngLine, 14) ' Ship To Address
        .Cells(3, 5) = wsPicklist.Cells(lngLine, 15) ' Ship To City/State/Zip
        .Cells(4, 5) = wsPicklist.Cells(lngLine, 16) ' Comment
        ' Add line items to the order template
        Do
            .Cells(c, 1) = wsPicklist.Cells(lngLine, 6) ' Part #
            .Cells(c, 2) = wsPicklist.Cells(lngLine, 7) ' Part Name
            .Cells(c, 7) = wsPicklist.Cells(lngLine, 8) ' Qty Ordered
            wsPicklist.Cells(lngLine, 10) = Now         ' Date Printed
            wsPicklist.Cells(lngLine, 11) = strFileName ' File Name
            lngLine = lngLine + 1
            c = c + 1
        Loop While strStore = wsPicklist.Cells(lngLine, 1)
    End With
    'Create formatted borders on store order template
    x = lngLine - x + 6
    wsTemplate.Activate
    wsTemplate.Range("A7:L" & x).Select
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    ' Print the store order to PDF
    strTmpPath = "D:\Eric\Desktop\WIS-Speedway\Phase II\Picklists\New\Tmp\"
    strPDFPath = "D:\Eric\Desktop\WIS-Speedway\Phase II\Picklists\New\"
    wsTemplate.PrintOut copies:=1, preview:=False, _
    ActivePrinter:="Acrobat Distiller", printtofile:=True, _
    collate:=True, PrToFileName:=strTmpPath & strFileName & ".ps"
    oPDF.FileToPDF strTmpPath & strFileName & ".ps", strPDFPath & strFileName & ".pdf", ""
    ' Set active cell to next store order
    wsPicklist.Activate
    wsPicklist.Cells(lngLine, 10).Select
    End Sub

    Ok, I have given up the ghost on this problem. I found a MUCH better solution to the problem that I was having, that also has the side benift of processing far faster. See http://msdn.microsoft.com/en-us/library/ee834871(office.11).aspx for details. Basically, I am now using the VBA ExportAsFixedFormat method, rather than Distiller. Hope this helps.

  • When you create a PostScript file you must rely on system fonts and use document fonts

    I got this error:
    "When you create a PostScript file you must rely on system fonts and use document fonts. Please go to the printer properties, "Adobe PDF Settings" page and turn OFF the option "Rely on system fonts only; do not use document fonts."
    This strikes me as bad practice. I only want to use system fonts and document fonts will muck me up.
    That being said, I could not easily find a way to fix this with Acrobat Pro XI. I opened Control Panel (Windows 8) and found the printer and mucked around in the various ways to get to change the PDF settings (there are several ways, and some of them present the choices as bold and not just regular). I found two separate switches for "Rely on system fonts only; do not use document fonts" and turned both off, BUT that did not work.
    Frustrated, I went back to FrameMaker and clicked File > Print Setup and then for the PDF printer, Printer Properties. There I found a THIRD instance of "Rely on system fonts only; do not use document fonts" that was set differently than the other two. This was the setting the error message meant. Change this one.
    Thanks for the convoluted UI, Adobe. What a pain, but there is the answer for all who follow after....

    > Windows 7 and Frame 7.2.
    This is not a supported configuration and probably does not work, due (I'm guessing) to driver API changes from XP to Win7, which would affect generating PDF and Ps output. This would affect Save-as-PDF and Print-to-Ps+Distill (unless you have a newer version of the full Acrobat product).
    As it happens, I'm going to attempt something similar: FM 7.0 on Win7 64 Pro. However, I'm going to install that old FM in "XP Mode".
    XP Mode is a 32-bit virtual machine running actual Windows XP inside Win7. It is (now maybe "was") available for Windows 7 Enterprise, Professional and Ultimate (but not Basic, Home or not-so-Premium). When XP went off support life earlier this month, Mr.Bill may have taken down the ability  to download XP Mode (or not, since some large enterprises are able to  purchase continued support for XP at some great cost). XP Mode never was supported for Win8. There are other VMs for Windows available.
    If XP Mode is still available, you also need a CPU that has hardware virtualization, which all recent 64-bit AMD processors do, but which is fused-off in many low end 64-bit Intel processors. AMD processors need a separate unobvious hot-fix patch installed before you do anything else about XP Mode.

  • Change "rely on system fonts only" via Group Policy

    Hello,
    This may take a bit to explain my problem, sorry in advance. I have a mixed network environment of Windows 7 Professional (x64) and Windows XP Pro SP3 (x32), and all of them have Adobe Acrobat 9 Standard, with the Adobe PDF Printer.
    My problem is that ALL of these systems have a serious, game-killing problem with the Adobe PDF printer setting, "Rely on system fonts only; do not use document fonts". If that option is enabled (or if the option with the same name under Printer Defaults is enabled), then printing in our ERP software dies. (We use Microsoft Dynamics GP). Users get an error "Unable to stop printing", and believe me it took a WHILE before I figured out that the Adobe PDF setting was to blame! This happens even if my users are printing to physical paper, and not touching the PDF printer at all. In other software we sometimes get the annoying popup message from Adobe PDF saying that we need to uncheck the "Rely on system fonts..." setting as well. In short, I HAVE to keep that option turned off for all of my users.
    Unfortunately, every time there's a major Adobe update the option returns (GRRRR!), in both the Printer Preferences menu and the Printer Defaults menu. I'm trying to change the option via a group policy administrative template, but I don't know which registry settings to modify - it seems like this option exists in SEVERAL places, here are the ones I've found so far:
    - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts
    - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts
    - HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts
    - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts
    I've also found references in this forum that tell me to also change a long binary string in:
    - HKEY_CURRENT_USER\Printers\DevModePerUser\Adobe PDF\Adobe PDF       (And this one I honestly have no idea how to edit a huge string like that.)
    For the first four registry values, when I change DistillerHostFontHasMostFonts to 0 via a template... the checkbox isn't visually cleared in the GUI. *face palm* I'm a bit desperate - how is an admin supposed to change this option across a company network besides manually?

    And, as a demonstration that this is a REAL and DOCUMENTED Microsoft bug, here's the text of the Dynamics GP KB article:
    It would be nice if somebody from Adobe had an answer other than "yeah you shouldn't disable that feature, for vague reasons of our own that we won't tell you."  Microsoft clearly believes it MUST be disabled! I don't have an option there, or my company's ERP software doesn't work.
    SYMPTOMS
    When  you try to send a report as a .pdf file to an e-mail recipient from  Microsoft Dynamics GP and from Microsoft Business Solutions - Great  Plains, you receive the following error message:When you create a PostScript file you have to send the host fonts. Please go to the printer properties, "Adobe PDF Settings" page and turn OFF the option "Do not send fonts to Distiller" appears.You continue to receive this error message after you follow these steps to turn off the Do not send fonts to Distiller option:
    1.
    Click Start, and then click Printers and Faxes.
    2.
    Right-click Adobe PDF, and then click Properties.
    3.
    On the General tab, click Printing Preferences.
    4.
    Click to select the  Do not send fonts to "Adobe PDF" check box, and then click OK.
    5.
    On the Advanced tab, click Printing Defaults.
    6.
    Click to select the Do not send fonts to "Adobe PDF" check box.
    7.
    Start Microsoft Great Plains.
    Back to the top
    RESOLUTION
    Microsoft Dynamics GPTo resolve this problem, complete steps 1-6 in the "Workaround" section.
    Back to the top
    Microsoft Business Solutions -  Great Plains 8.0To  resolve this problem, complete steps 1-6 of the "Workaround" section,  and then obtain the latest service pack for Microsoft Business Solutions  -  Great Plains 8.0. For more information, visit one of the following  Microsoft Web sites, depending on whether you are a partner or a  customer. Partners https://mbs.microsoft.com/partnersource/products/GreatPlains/downloads/servicepackCustomershttps://mbs.microsoft.com/customersource/support/downloads/servicepacks
    Back to the top
    WORKAROUND
    To work around this problem, follow these steps.Adobe 6.0 and Adobe 7.0
    1.
    Click Start, and then click Printers and Faxes.
    2.
    Right-click Adobe PDF, and then click Properties.
    3.
    On the General tab, click Printing Preferences.
    4.
    Click to clear the Do not send fonts to "Adobe PDF" check box.
    5.
    On  the Advanced tab,  click Printing Defaults.
    6.
    Click to clear the Do not send fonts to "Adobe PDF" check box.
    7.
    Start Microsoft Great Plains.
    8.
    In Microsoft Great Plains, click Print Setup on the File menu.
    9.
    In the Name list, click Adobe PDF, and then click Properties.
    10.
    On the Adobe Default Settings tab, click to select  the  Do not send fonts to "Adobe PDF" check box. Then, click to clear the Do not send fonts to "Adobe PDF" check box.
    11.
    Click OK two times.
    Adobe 8.0
    1.
    Click Start, and then click Printers and Faxes.
    2.
    Right-click Adobe PDF, and then click Properties.
    3.
    On the General tab, click Printing Preferences.
    4.
    Click to clear the Rely on System fonts only; do not use document fonts check box.
    5.
    On the Advanced tab, click Printing Defaults.
    6.
    Click to clear the Rely on System fonts only; do not use document fonts check box.
    7.
    Click OK two times.
    Back to the top
    STATUS
    Microsoft Dynamics GP 10.0Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
    Back to the top
    Microsoft Dynamics GP 9.0Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
    Back to the top
    Microsoft Business Solutions -  Great Plains 8.0Microsoft  has confirmed that this is a problem in the Microsoft products that are  listed in the "Applies to" section. This problem was first corrected in  Microsoft Business Solution - Great Plains 8.0 Service Pack 4a.
    Back to the top
    MORE INFORMATION
    The  third-party products that this article discusses are manufactured by  companies that are independent of Microsoft. Microsoft makes no  warranty, implied or otherwise, about the performance or reliability of  these products.
    Back to the top
    APPLIES TO
    Microsoft Dynamics GP 2010
    System Manager, when used with:
    Microsoft Dynamics GP 10.0
    Microsoft Dynamics GP 9.0
    Microsoft Business Solutions–Great Plains 8.0

  • Turn Off options "Rely on system fonts only;"

    I'm trying to figure out why PageMaker keeps running into a wall when trying to export a pdf.  I continue to get the error message: "Adobe PDF Settings" turn off the option "Rely on system fonts only; do not use document fonts."  I've searched through all the settings I can find in PageMaker and I don't see a single one called "Rely on system fonts...".  I've tried going into Devices and Printers in Windows 7 and there is no Adobe PDF printer listed despite the fact that the latest Adobe Masters Collection is installed along with Acrobat Reader.  Therefore I don't get where this setting is suppose to be.  Can anyone help me out here?

    Re: the million complaints, no--I'm sure there aren't a million lodged. But I'm sure we could document 50,000 complaints about failed plugins, bloated software, too frequent updates, strange error messages on load, features that switch on/off. Just with Acrobat. Probably just on the Adobe board alone. Like polling, I think you could project out to a million from that--because "I haven't heard a million suggestions" doesn't mean there aren't a million customers grinding their teeth with a billion instances of failure.
    Re: the upgrade cycle, of course companies like you to upgrade. But that doesn't excuse them from adding new features/tweaks while grandfathering in bugs. Like the bug discussed here, which actually has nothing to do with PageMaker. Because it's the same one discussed here in 2009: http://forums.adobe.com/message/1880784. And it's the same one I'm experiencing now with Adobe Acrobat XI Pro.
    And the issue for me (and in the 2009 post) is a conflict between Acrobat and the Calibri font--which is the default font for Word since 2007. (All Ben needed to do was Google the error message posted by this poor ******* who's stuck using PageMaker--he may have even found this post: http://blog.rockymountaintraining.com/?p=2551.)
    Six years later, here this bug still is. A bug that is pure Adobe--based on how Adobe products interact with the operating system. I cringe at how many PDFs I've sent out to clients that included unusable links (it would be nice to be as confident as you are that not hearing complaints means there haven't been any).
    And a person cannot upgrade out of this kind of bug without upgrading out of Adobe.

  • How do you unmark the Rely on System Fonts settings to automatically created virtual printers in Citrix?

    Hello!
    We have an application that requires the Rely on System Fonts box to be unmarked.  I already unmarked it on the Adobe PDF printer on the Citrix server however this change does not roll down to the automatically created adobe printers in Citrix.  How can I roll down the change?
    Thanks
    MarisolB

    Steve,
    Thanks for your notes. To follow up on your response.
    Bummer. I kinda had a hunch at this inDesign limitation.
    I have been aware of the method for setting up of a security policy within Acrobat. While this feature does cut down some of the work involved in creating and applying password policies to pdfs, what I am looking for with Acrobat is to apply the same password policy to every document I save from the app. Automatically. Without having to manualy select a policy.
    I think my solution will have to lie in me creating some sort of script to help support this need. I don't think Acrobat Pro X has the capabilities to allow me to tinker with, say, creating a save PDF preset that will allow me to automatically apply a password policy.
    PS. I am using acrobat pro x.

  • Can't editing PDF text-no system font error

    Hi all,
    I'm trying to edit a PDF containing "Arial+0" font. This is the original font and the editing font. There is no system font for this, so I am unable to edit or delete text.
    I attempted one solutioon to edit the TouchUp Properties for highlighted text, changing the font to something my system has.  However, when I tried changing the font to "Arial", I got the following error:
    The change to a different font was not done because the chosen font and the font encodings in the document differ and could not be resolved.
    Is there a way around this error?  Any other approaches to try?
    Thanks!

    If you want to proceed, you will either have to find a version of the Arial font that was used (not necessarily easy) or try each of the fonts on your system until you find one that is compatible. Is the font embedded? If not what font is your system using to display the text?
    You might find it easier to get the original document, do the edit in the appropriate software, and recreate the PDF.

  • EXCEL VBA: Inserting rows code returns error "2147417848 The object invoked has disconnected from its clients"

    I was executing the following code in Excel 2013 that is linked to a button I use to add multiple rows in a chosen section of a worksheet
    Sub Add_Rows_dc()
    Sheet53.Unprotect ("xxx")
    X = Range("C1").Value + 1 'Section Counter
    Y = ListSheet.Range("I" & X).Value 'Existing rows counter
    Z = ListSheet.Range("H" & X).Value 'Position counter
    Righe = InputBox("How many rows would you like to add?", , "1")
    If Righe < 1 Then GoTo err ' test for invalid row number
    RigheSheet.Rows(X).Copy
    Rows(Z - 1 & ":" & Righe + Z - 2).Insert Shift:=xlDown
    GoTo Fine
    err:
    Mess = MsgBox("PLEASE INSERT A VALID NUMBER OF ROWS", vbCritical)
    Fine:
    'Formulas update
    Z = ListSheet.Range("H" & X).Value 'Position counter update
    Range("U" & Z - Righe - 2 & ":AF" & Z - 2).FillDown
    Sheet53.Protect "xxx", , , , , True
    End Sub
    From time to time it returns me the error "2147417848 The object invoked has disconnected from its clients" and the debug point out the line
    Rows(Z - 1 & ":" & Righe + Z - 2).Insert Shift:=xlDown
    I cannot find any specific reason due to the fact that the error seems randomic, sometimes the code is perfectly executed, sometimes not.
    I wrote this piece of code in Excel 2010 and never encountered such problem before reusing it in Excel 2013
    Has someone an insight or a suggestion?
    Thank you very much

    Re:  strange error
    Try it this way...
    (might work, might not)
    Sub Add_Rows_dc_R1()
     Dim X As Double
     Dim Y As Double
     Dim Z As Double
     Dim Righe As Variant
     Dim Mess As Long
        Sheet53.Unprotect ("xxx")
        X = Range("C1").Value + 1 'Section Counter
        Y = ListSheet.Range("I" & X).Value 'Existing rows counter
        Z = ListSheet.Range("H" & X).Value 'Position counter
        Righe = InputBox("How many rows would you like to add?", , "1")
        If Righe < 1 Then GoTo errX  ' test for invalid row number
         RigheSheet.Rows(X).Copy
         Rows(Z - 1 & ":" & Righe + Z - 2).Insert Shift:=xlDown
        GoTo Fine  
    Fine:
    'Formulas update
     Z = ListSheet.Range("H" & X).Value 'Position counter update
     Range("U" & Z - Righe - 2 & ":AF" & Z - 2).FillDown
     Sheet53.Protect "xxx", , , , , True
    Exit Sub
    errX:
    Mess = MsgBox("PLEASE INSERT A VALID NUMBER OF ROWS", vbCritical)
    End Sub
    Jim Cone
    Portland, Oregon USA
    free & commercial excel programs (n/a xl2013)
    https://jumpshare.com/b/O5FC6LaBQ6U3UPXjOmX2

  • How to embed/apply a system font to an entire PDF

    How can I embed/apply a system font to an entire PDF so that I can freely reword a document?
    I am reading a highly technical document.  The best way for me to understand it is to replace complex words with synonyms and definitions that I understand. The best way to do this is with the TouchUp tool, but I'm getting the "no available system font" error.  By default the touch up tool will select a line of text that you can then right click -> properties and select a font to embed to correct this error.
    I need to apply this process to the entire document, not just one line.  Somehow I accidently managed to apply this process to a full page of text, but I do not know the details of what I actually did.  So I know it is possible to do this to at least large chunks of text. 
    Please advise.

    The quick and dirty way would be to open up a New document in Microsoft Word, then using the Text Select tool (next to the Hand Tool in the toolbar) copy and paste into Word, make your edits, then convert or print to PDF.  That's best if the document is a few pages.
    Another way is to convert the document to Microsoft Word using the command File > Save As > Microsoft Word > Word document. It should preserves any tables, graphs and equations, and you should be able to easily edit it. You could even substitute the fonts with what you have on your system. Then convert it back to PDF.
    A third way is in Acrobat. It is the Edit Object tool.  This is where Acrobat would send you to Adobe Illustrator to revise the text. It's much more work since the text might have to be reformatted...and I think you might want to try the Word method first.
    You can now understand why the conventional wisdom is to use the source document. Acrobat at this point is  for minor edits, and enhancements, page numbering headers and footers.
    Acrobat XI coming out in about 30 days is going to have far better editing capabilities, so you may want to consider that if you are going to be doing this often.
    Gene

  • Using Excel VBA to Programmatically change Adobe Print Properties

    Did the Registry location of the "Rely on system fonts, do not use document fonts" setting change for Acrobat 10? It is not located in the Registry location mentioned in this discussion:
    http://forums.adobe.com/thread/422928
    Any Ideas?
    Much appreciated.

    Did the Registry location of the "Rely on system fonts, do not use document fonts" setting change for Acrobat 10? It is not located in the Registry location mentioned in this discussion:
    http://forums.adobe.com/thread/422928
    Any Ideas?
    Much appreciated.

  • When starting InDesignCS2 received new error message -- InDesign is missing required system fonts or

    We are not able to start Indesign CS2 without getting the error message: <<InDesign is missing required system fonts or CMap files. Please reinstall InDesign.>> This is on WinXP.<br /><br />Recently I installed Creative Suite CS4. It took almost a day to install. The installation kept on stopping. Each time we were able to install one more program. After checking all of the programs we discovered that Firefox would not start due to a possible font error. After reading many posts I decided to uninstall a lot of fonts since I did not know which one was the culprit. <br /><br />However now I am missing a font (at least I hope that this is caused by a missing font and not anything else) that should be there and I don't know which one it should be. I did uninstall a <lot> of fonts and don't remember which ones.<br /><br />WE did uninstall all CS2 programs and then reinstalled only the necessary three. However that did not make any difference.<br /><br />Any ideas and suggestions would be welcome<br />Thanks<br />Pia Pehtla

    A forum search for "missing required fonts" brings up this thread which should solve your problem:
    http://www.adobeforums.com/webx?128@@.3bbdb0a7
    Peter

  • Error in Excel VBA script while using sharepoint web service

    Hi Can you please help me out  in this ?
    nain1987

    Hi Nain,
    According to your description, my understanding is that the error occurred in the Excel VBA scripts which was used to update SharePoint list.
    I recommend to check if the URL of the web service is in the right scope. If the list is in a subsite, the URL should be: http://servername/site/ _vti_bin/Lists.asmx.
    To update SharePoint list using Excel VBA script, you can refer to the link below:
    http://sharepoint.stackexchange.com/questions/34433/update-sharepoint-list-using-excel
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Date parameter has error in Excel VBA

    Hi Expert,
      I follow up experts code to create a query in Excel VBA, but when running, I got error(Invalid column name "StartDate") in SQL query. I don't know how to fix it because beginner. I hope somebody can help.
    The code is this.
    Public Sub Run()
        Dim SQL As String
        Dim Connected As Boolean
        Dim StartDate As Date
        Dim curdate As Date
        Dim MsgDate As String
        Dim TitleMsg As String
        MsgDate = "Enter the Start Date in A2 to use for these Timesheets (d/mm/yy), or Accept the Default (Today - 30)"
        TitleMsg = "Timesheet Start Date"
        curdate = Date - 30
        MsgBox (MsgDate)
        StartDate = Application.InputBox(MsgDate, TitleMsg, FormatDateTime(curdate, vbShortDate), Type:=1)
        ' Our query
        SQL = "select [Posting Date],[Ship-to Code],[External Document No_],[Order No_],[Pallet Amount]" & _
                "from dbo.[Valley Fine Foods$Sales Shipment Header]" & _
                "where [Location Code] = 'BE' and [Pallet Vendor] = 'PECO' and [Posting Date] >= ""'StartDate'"";"
        ' Connect to the database
        Connected = Connect("vffserver9m", "vffnav2013")
        If Connected Then
            ' If connected run query and disconnect
            Call Query(SQL)
            Call Disconnect
        Else
            ' Couldn't connect
            MsgBox "Could Not Connect!"
        End If
    End Sub
    James Liang

    Try
    SQL = "SELECT [Posting Date], [Ship-to Code], [External Document No_], [Order No_], [Pallet Amount] " & _
    "FROM dbo.[Valley Fine Foods$Sales Shipment Header] " & _
    "WHERE [Location Code] = 'BE' and [Pallet Vendor] = 'PECO' and [Posting Date] >= #" & _
    Format(StartDate, "yyyy-mm-dd") & "#"
    or
    SQL = "SELECT [Posting Date], [Ship-to Code], [External Document No_], [Order No_], [Pallet Amount] " & _
    "FROM dbo.[Valley Fine Foods$Sales Shipment Header] " & _
    "WHERE [Location Code] = 'BE' and [Pallet Vendor] = 'PECO' and [Posting Date] >= '" & _
    Format(StartDate, "yyyy-mm-dd") & "'"
    Regards, Hans Vogelaar (http://www.eileenslounge.com)

  • Using Excel VBA to Print to PDF File?

    Hi, All !!
    I have an Excel VBA application that creates Excel reports.  These need to be sent external to our company in PDF format.  I've downloaded the Acrobat SDK and have found the VB sample for AdobePDFSilent.  Unfortunately, it appears that this is written for VB or VB.Net as I don't have any of the data types available that are created in the code.  However, from another forum, I've gotten some VB code that appears to do many of the processes included in the SDK sample.
    The code below doesn't give me any errors, but no PDF file is created.
    My VBA code
    Declare Function RegOpenKeyA Lib "advapi32.dll" ( _
        ByVal Key As Long, _
        ByVal SubKey As String, _
        NewKey As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _
        ByVal hKey As Long, _
        ByVal lpValueName As String, _
        ByVal Reserved As Long, _
        ByVal dwType As Long, _
        lpData As Any, _
        ByVal cbData As Long) As Long
    Declare Function RegCloseKey Lib "advapi32.dll" ( _
        ByVal hKey As Long) As Long
    Sub TestPrintPDF()
        Dim strDefaultPrinter As String
        Dim strOutFile As String
        Dim lngRegResult As Long
        Dim lngResult As Long
        Dim dhcHKeyCurrentUser As Long
        Dim PDFPath As String
        Const dhcRegSz As Long = 1
    1    Workbooks.Open ("\\master\fnshares\bcbcm\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest\A02.xls")
    2    Select Case ActiveWorkbook.Sheets.Count
    3        Case 1
    4            Sheets(1).Select
    5        Case 2
    6            Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Select
    7        Case 3
    8            Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
    9        Case 4
    10            Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name)).Select
    11        Case 5
    12           Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name, Sheets(5).Name)).Select
    13      Case 6
    14         Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name, Sheets(5).Name, Sheets(6).Name)).Select
    15  End Select
    16  dhcHKeyCurrentUser = &H80000001
    17  strDefaultPrinter = Application.ActivePrinter
    18  PDFPath = ActiveWorkbook.Path & Application.PathSeparator 'The directory in which you want to save the file
    19  strOutFile = PDFPath & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".pdf" 'Change the pdf file name if required. This should have the fully qualified path
    20  lngRegResult = RegOpenKeyA(dhcHKeyCurrentUser, "Software\Adobe\Acrobat Distiller\PrinterJobControl", lngResult)
    21  lngRegResult = RegSetValueEx(lngResult, Application.Path & "\Excel.exe", 0&, dhcRegSz, ByVal strOutFile, Len(strOutFile))
    22  lngRegResult = RegCloseKey(lngResult)
    23  ThisWorkbook.ActiveSheet.PrintOut copies:=1, ActivePrinter:="Adobe PDF"
    24  Application.ActivePrinter = strDefaultPrinter
    25  ActiveWorkbook.Close False
    End Sub
    From what I can determine, the lines 17 & 24 combined basically accomplish the same thing as the SaveandUpdateDefaultPrinter function in the SDK (get and save the current default printer and return it to that default after printing the PDF).
    Line 20 opens the Registry key for Distiller\PrinterJobControl which is done in part of the ConvertFile function in the following SDK code.
    SDK Code
                Dim objDistillerRegKey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.ClassesRoot
                Dim strDistillerSubKey As String = "SOFTWARE\\Adobe\\Acrobat Distiller\\PrinterJobControl"
                'Open Current User's Distiller Subkey for writing
                objDistillerRegKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(strDistillerSubKey, True)
    Line 21 sets the Registry key for Excel with the name of the PDF file to output which also appears to be done in part of the ConvertFile function in the following code.
    SDK Code
               If (Not objDistillerRegKey Is Nothing) Then     'set reg key value for this app and file
                    objDistillerRegKey.SetValue(strAppPath, strOutputFile)
                    objDistillerRegKey.Close()
                End If
    I have verified, using RegEdit, that this Registry key does get set with the desired output filename.
    Line 23 prints the Excel file to PDF when done manually (this was recorded using the Excel Macro Recorder).  This should be comparable to the PrintToAdobePDF function in the SDK as below.
    SDK Code
        Private Sub PrintToAdobePDF(ByVal InputfilePath As String)
            'Prints InputFilePath to the AdobePDF printer.
            'Since we just gathered all this info programmatically,
            'this function assumes the file is present, that it has an
            'associated application and that the current user has print privileges.
            'Define properties for the print process
            Dim pProcInfo As New ProcessStartInfo
            pProcInfo.FileName = InputfilePath
            pProcInfo.Verb = "Print"
            'Make process invisible
            pProcInfo.CreateNoWindow = True
            pProcInfo.WindowStyle = ProcessWindowStyle.Hidden
            'start print process
            Dim pMyProc As Process = Process.Start(pProcInfo)
            pMyProc.WaitForExit()
        End Sub
    These are some of the statements I can't do because I don't have a ProcessStartInfo type.  What am I doing wrong or NOT doing that the PDF file is not created?  I hope I've described my situation in enough, but not too much detail.  Thanks for your help.
    Nate Brei

    Reinhard & Karl Heinz,
    Thank you both for your responses and willingness to work with me on this problem.  This is driving me crazy & is getting very frustrating.  It seems that I've tried everything that people have suggested (I've also posted on a VB Forum that I subscribe to) and I'm basically doing what works for everyone else but doesn't work for me.  I've got to be close.
    Reinhard, regarding your last post, it doesn't appear to be a one-time setting.  Everytime I come into the Printers Property box (even after I've printed a PDF document manually, that option about system & document fonts is ALWAYS turned on.  If it is a registry setting, please let me know how to turn it off.  I'm using Adobe Acrobat 9 Standard.
    Karl Heinz, I've tried that based on my initial post (see the code there).  Since your post, I tried it again.  I get the same result, NO FILE is produced anywhere.
    I wish I could post pictures, but evidently I can't.  So, I going to post first my code (in case you want to try to recreate my problem), then the values of the variables in that code when I run it (so you can I have everything set correctly as far as I know), and finally, the values of the Registry entries that I have after I run it.  So, please bear with me as the post may be a little long.
    My Code
    Declare Function RegOpenKeyA Lib "advapi32.dll" ( _
        ByVal Key As Long, _
        ByVal SubKey As String, _
        NewKey As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _
        ByVal hKey As Long, _
        ByVal lpValueName As String, _
        ByVal Reserved As Long, _
        ByVal dwType As Long, _
        lpData As Any, _
        ByVal cbData As Long) As Long
    Declare Function RegCloseKey Lib "advapi32.dll" ( _
        ByVal hKey As Long) As Long
    Sub TestPrintPDF()
        Dim strDefaultPrinter As String
        Dim strOutFile As String
        Dim lngRegResult As Long
        Dim lngResult As Long
        Dim dhcHKeyCurrentUser As Long
        Dim PDFPath As String
        Const dhcRegSz As Long = 1
        'Workbooks.Open ("\\master\fnshares\bcbcm\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest\A02.xls")
        Workbooks.Open ("H:\A02.xls")
        Select Case ActiveWorkbook.Sheets.Count
            Case 1
                Sheets(1).Select
            Case 2
                Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Select
            Case 3
                Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
            Case 4
                Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
                 Sheets(4).Name)).Select
            Case 5
                Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
                 Sheets(4).Name, Sheets(5).Name)).Select
            Case 6
                Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
                 Sheets(4).Name, Sheets(5).Name, Sheets(6).Name)).Select
        End Select
        dhcHKeyCurrentUser = &H80000001
        strDefaultPrinter = Application.ActivePrinter
        'The directory in which you want to save the file
        PDFPath = ActiveWorkbook.Path & Application.PathSeparator
        'Change the pdf file name if required. This should have the fully qualified path
        strOutFile = PDFPath & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".pdf"
        lngRegResult = RegOpenKeyA(dhcHKeyCurrentUser, "Software\Adobe\Acrobat Distiller\PrinterJobControl", _
            lngResult)
        lngRegResult = RegSetValueEx(lngResult, Application.Path & "\Excel.exe", 0&, dhcRegSz, _
            ByVal strOutFile, Len(strOutFile))
        lngRegResult = RegCloseKey(lngResult)
        ThisWorkbook.ActiveSheet.PrintOut copies:=1, ActivePrinter:="Adobe PDF"
        'ThisWorkbook.ActiveSheet.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF", _
            printtofile:=True, collate:=True, prtofilename:=strOutFile
        'Call printToPdf(strOutFile)
        Application.ActivePrinter = strDefaultPrinter
        ActiveWorkbook.Close False
    End Sub
    Sub printToPdf(PDFFilename)
        ' Define a postscript file name
        PSFileName = "H:\TempPostScript.ps"
        ' Print the Excel range to the postscript file
        'Dim MySheet As Worksheet
        'Set MySheet = ActiveSheet
        ActiveWindow.SelectedSheets.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF", _
            printtofile:=True, collate:=True, prtofilename:=PSFileName
        ' Convert the postscript file to .pdf
        Set myPDF = CreateObject("PdfDistiller.PdfDistiller.1")
        myPDF.FileToPDF PSFileName, PDFFilename, ""
    End Sub
    Values of my Variables When I Run the Code
    ? dhcHKeyCurrentUser
         -2147483647
    ? strDefaultPrinter
         \\tcps01p\FNT12W00 Canon 5020 PCL 5e on Ne04:
    ? PDFPath
         H:\
    ? strOutFile
         H:\A02.pdf
    ? lngResult
         2280
    ? Application.Path & "\Excel.exe
         C:\Program Files\Microsoft Office\OFFICE11\Excel.exe
    ? dhcRegSz
         1
    ? Len(strOutFile)
         10
    ? PSFileName
         H:\TempPostScript.ps
    ? PDFFilename
         H:\A02.pdf
    Values of my Registry Entries (HKEY_CURRENT_USER\Software\Adobe\Acrobat Distiller\PrinterJobControl)
    (Default)          REG_SZ          (value not set)
    C:\Program Files\Microsoft Office\OFFICE11\Excel.exe          REG_SZ          H:\A02.pdf
    LastPdfPortFolder - EXCEL.EXE          REG_SZ          "Q:\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest
    Note:  There are a couple of other entries for documents that I've printed manually that I didn't include.  Also, the last entry above, contains the value of the folder that I last manually "printed" to.
    I've also noticed that I have a Registry SubKey under PrinterJobControl called DownloadFonts.  However, the only entry there is:
         (Default) REG_SZ (value not set)
    Is this the registry key you mentioned, Reinhard?
    As you can see in my code, I have 3 different methods that I've tried to print.  The first one defaults everything after selecting the Acrobat PDF printer.  The second sets the output filename as a PDF (basically what you suggested, Karl Heinz).  The third method calls a procedure that prints to a PostScript file & then uses Distiller to print from that file to pdf.  This is the method Reinhard suggested.
    With the first 2 methods, I get NO error messages, but no file(s) show up.  With the 3 method, I get the error about the Fonts checkbox, but it creates a 0K PostScript file.  When I skip that statement and run the other 2 statements, I get a log file that says the PostScript file is empty and not PDF file was created.
    YIKES...  What's going on?  Thanks again for attempting to help me!!!
    Nate

  • RFC CALL VIA EXCEL VBA

    Hello,
    Hope someone call help with the following.
    I am trying to retrieve data from a table within SAP by using the following Excel VBA code.
    Sub retrieve_table_contents()
    Dim R3, MyFunc, App As Object
    Dim SEL_TAB, NAMETAB, TABENTRY, ROW As Object
    Dim Result As Boolean
    Dim iRow, iColumn, iStart, iStartRow As Integer
    iStartRow = 4
    Worksheets(1).Select
    Cells.Clear
    'Create Server object and Setup the connection
    Set R3 = CreateObject("SAP.Functions")
    R3.Connection.System = "QA2"
    R3.Connection.client = "900"
    R3.Connection.user = "mbrough"
    R3.Connection.password = "st34lh"
    R3.Connection.language = "EN"
    If R3.Connection.logon(1, False) <> True Then
       Exit Sub
    End If
    'Call RFC function TABLE_ENTRIES_GET_VIA_RFC
    Set MyFunc = R3.Add("TABLE_ENTRIES_GET_VIA_RFC")
    Dim oParam1 As Object
    Dim oParam2 As Object
    Dim oParam3 As Object
    Dim oParam4 As Object
    Set oParam1 = MyFunc.exports("LANGU")
    Set oParam2 = MyFunc.exports("ONLY")
    Set oParam3 = MyFunc.exports("TABNAME")
    Set oParam4 = MyFunc.Tables("SEL_TAB")
    oParam1.Value = "E"
    oParam2.Value = ""
    oParam3.Value = "LAGP"
    If frmQuery.txtSelect <> "" Then
        oParam4.Rows.Add
        oParam4.Value(1, "ZEILE") = frmQuery.txtSelect
    End If
    Result = MyFunc.CALL
    If Result = True Then
      Set NAMETAB = MyFunc.Tables("NAMETAB")
      Set SEL_TAB = MyFunc.Tables("SEL_TAB")
      Set TABENTRY = MyFunc.Tables("TABENTRY")
    Else
        MsgBox MyFunc.EXCEPTION
        R3.Connection.LOGOFF
        Exit Sub
    End If
    Result = R3.TABLE_ENTRIES_GET_VIA_RFC(EXCEPTION, LANGU:="E", ONLY:="", TABNAME:="LAGP", SEL_TAB:=SEL_TAB, NAMETAB:=NAMETAB, TABENTRY:=TABENTRY)
    'Quit the SAP Application
    R3.Connection.LOGOFF
    If Result <> True Then
      MsgBox (EXCEPTION)
      Exit Sub
    End If
    'Display table header
    iColumn = 1
    For Each ROW In NAMETAB.Rows
        Cells(iStartRow - 1, iColumn) = ROW("FIELDNAME")
    '   For C and N datatypes, explicitly set the cell to TEXT format, otherwise leading zeroes will be lost
    '   when numbers are imported from a SAP text field
        If ROW("INTTYPE") = "C" Or ROW("INTTYPE") = "N" Then
            Range(Cells(iStartRow - 1, iColumn), Cells(iStartRow - 1 + TABENTRY.Rowcount, iColumn)).Select
            Selection.NumberFormat = "@"
        End If
        Cells(iStartRow, iColumn) = ROW("FIELDTEXT")
        iColumn = iColumn + 1
    Next
    Range(Cells(iStartRow - 1, 1), Cells(iStartRow, NAMETAB.Rowcount)).Font.Bold = True
    'Display Contents of the table
    iColumn = 1
    For iRow = iStartRow + 1 To TABENTRY.Rowcount
        For iColumn = 1 To NAMETAB.Rowcount
            iStart = NAMETAB(iColumn, "OFFSET") + 1
    '       If this is the last column, calculate the length differently than the other columns
            If iColumn = NAMETAB.Rowcount Then
                iLength = Len(TABENTRY(iRow, "ENTRY")) - iStart
            Else
                iLength = NAMETAB(iColumn + 1, "OFFSET") - NAMETAB(iColumn, "OFFSET")
            End If
    '       If the fields at the end of the record are blank, then explicitly set the value
            If iStart > Len(TABENTRY(iRow, "ENTRY")) Then
                Cells(iRow, iColumn) = Null
            Else
                Cells(iRow, iColumn) = Mid(TABENTRY(iRow, "ENTRY"), iStart, iLength)
            End If
        Next
    Next
    'Format the Columns
    Range(Cells(iStartRow, 1), Cells(iStartRow + TABENTRY.Rowcount, NAMETAB.Rowcount)).Select
    Selection.EntireColumn.AutoFit
    End Sub
    However when I run the code I get the following exception message. 'SYSTEM_FAILURE' and nothing is returned.
    Does anyone know why this is?
    Thanks,
    Mike

    You can send data from excel to the MII message listener with a simple http post.
    Message format requirments can be found here:
    [http://help.sap.com/saphelp_xmii120/helpdata/en/45/6a86ac88130dece10000000a11466f/content.htm|http://help.sap.com/saphelp_xmii120/helpdata/en/45/6a86ac88130dece10000000a11466f/content.htm]
    Edited by: Christian Libich on Aug 10, 2009 10:14 PM

Maybe you are looking for