With the help of PrintPages in Visual Basic

I have trouble using PrintPages with Acrobat 9.  Previously, he has worked for me in Acrobat 7, but once I updated is no longer works.

Here is my code.  I call this function using the path and the name of the document and if I want to print all pages or just two.  The code opens the file and gives me the number of pages, but it does not print.  It does not cause an error or stop.  It passes just above this line of code and nothing happens.

I added 'Adobe Acrobat 9.0 Type Library' (acrobat.tlb) as a reference in VB.  I have version 9.1.3 installed.

Public void AcrobatPrint (FileName As String, PrintMode As String)

Dim AcroExchApp As Acrobat.CAcroApp
Dim AcroExchAVDoc As Acrobat.CAcroAVDoc
Dim AcroExchPDDoc As Acrobat.CAcroPDDoc
Dim num As Integer

Set AcroExchApp = CreateObject ("AcroExch.App")
Set AcroExchAVDoc = CreateObject ("AcroExch.AVDoc")

'Open the file [filename] pdf.
AcroExchAVDoc.Open FileName, «»

' Get the PDDoc associated with the open AVDoc
Set AcroExchPDDoc = AcroExchAVDoc.GetPDDoc

'Get the number of pages for this pdf [and subtract one as based zero].
NUM = AcroExchPDDoc.GetNumPages - 1

If PrintMode = "All" then

"Print the entire Document
Call AcroExchAVDoc.PrintPages (num, 0, 1, 1, 1)
On the other
If num = 0 Then

"Print any document (one page).
Call AcroExchAVDoc.PrintPages (num, 0, 1, 1, 1)
On the other

'Print the first two pages '.
Call AcroExchAVDoc.PrintPages (0, 1, 1, 1, 1)
End If
End If

AcroExchApp.Exit
AcroExchAVDoc.Close (True)
AcroExchPDDoc.Close


End Sub

Hello

You call call AcroExchAVDoc.PrintPages(0, num, 1, 1, 1).

The third parameter can be a 2 or a 3, if you then change the code works as expected.

Extract the documentation is less than

nPSLevel

Valid values are 2 and 3. If 2, PostScript® level 2 operators are used. If 3, PostScript Language level 3 operators are also used.

HTH

Sylvie Martel

Tags: Acrobat

Similar Questions

  • buffer size and sync with the cDAQ 9188 problems and Visual Basic

    Hi all, I have a cDAQ-9188 with 9235 for quarter bridge straing caliber acquisition module.

    I would appreciate help to understand how synchronization and buffer.

    I do not use LabView: I'm developing in Visual Basic, Visual Studio 2010.

    I developed my app of the NI AcqStrainSample example. What I found in the order is:

    -CreateStrainGageChannel

    -ConfigureSampleClock

    -create an AnalogMultiChannelReader

    and

    -Start the task

    There is a timer in the VB application, once the task begun, that triggers the playback feature. This function uses:

    -AnalogMultiChannelReader.ReadWaveform (- 1).

    I have no problem with CreateStrainGageChannel, I put 8 channels and other settings.

    Regarding the ConfigureSampleClock, I have some doubts. I want a continuous acquisition, then I put the internal rate, signal source 1000, continuous sample mode, I set the size buffer using the parameter "sampled by channel.

    What I wonder is:

    (1) can I put any kind of buffer size? That the limited hardware of the module (9235) or DAQ (9188)?

    (2) can I read the buffer, let's say, once per second and read all samples stored in it?

    (3) do I have to implement my own buffer for playback of data acquisition, or it is not necessary?

    (4) because I don't want to lose packets: y at - it a timestamp index or a package, I can use to check for this?

    Thank you very much for the help

    Hi Roberto-

    I will address each of your questions:

    (1) can I put any kind of buffer size? That the limited hardware of the module (9235) or DAQ (9188)?

    The samplesPerChannel parameter has different features according to the synchronization mode, you choose.  If you choose finished samples the parameter samplesPerChannel determines how many sample clocks to generate and also determines the exact size to use.  But if you use streaming samples, the samplesPerChannel and speed settings are used together to determine the size of the buffer, according to this excerpt from the reference help C DAQmx:

    Note that this buffer is a buffer software host-side.  There can be no impact on the material available on the cDAQ-9188 or NI 9235 buffers.  These devices each have relatively small equipment pads and their firmware and the Driver NOR-DAQmx driver software transfer data device to automatically host and the most effective way possible.  The buffer on the host side then holds the data until you call DAQmx Read or otherwise the input stream of service.

    (2) can I read the buffer, let's say, once per second and read all samples stored in it?

    Yes.  You would achieve this by choosing a DAQmx Read size equal to the inverse of the sampling frequency (during 1 second data) or a multiple of that of the other playback times.

    (3) do I have to implement my own buffer for playback of data acquisition, or it is not necessary?

    No, you should not need to implement your own stamp.  The DAQmx buffer on the host side will contain the data until you call the DAQmx Read function.  If you want to read from this buffer less frequently you should consider increasing its size to avoid the overflow of this buffer.  Which brings me to your next question...

    (4) because I don't want to lose packets: y at - it a timestamp index or a package, I can use to check for this?

    DAQmx will meet you if all packets are lost.  The default behavior is to stop the flow of data and present an error if the buffer of the side host DAQmx overflows (if, for example, your application does not pick up samples of this buffer at a rate equal or faster than they are acquired, on average).

    If, for any reason, you want to let DAQmx to ignore the conditions of saturation (perhaps, for example, if you want to sample continuously at a high rate but want only interested in retrieving the most recent subset of samples), you can use the DAQmxSetReadOverWrite property and set it to DAQmx_Val_OverwriteUnreadSamps.

    I hope this helps.

  • To create the distribution with the help of disk manager.

    Dear all, I m facing problem with blue screen error. And my all partitions is corrupted and I like repartition with the help of disk manager. Win xp bootable cd its not working. so pls help thank you & best regards

    Hi zubair.

    · What is the exact blue screen error you receive?

    · What happens when you try to boot from the CD?

    · You want to reinstall or restore the system?

    · Do you remember any changes made on your computer before the show?

    · Are you able to boot to the desktop?

    · You have saved the data?

    You can check the links below: how to use disk management to configure basic disks in Windows XP:http://support.microsoft.com/kb/309000

    How to partition and format a hard disk using the Windows XP Setup program:http://support.microsoft.com/kb/313348

    Best practices for partitioning a hard drive:http://www.microsoft.com/windowsxp/using/setup/expert/tulloch_partition.mspx

    With regard to:

    Samhrutha G S - Microsoft technical support.

    Visit our Microsoft answers feedback Forum and let us know what you think.

  • I recently installed turboc ++ software and I had problem with the color scheme of windows7 home basic

    in windows 7

    Control Panel-> appearance-> display-> change colors->
    After that I only have 5 options, with the exception of windows 7 standard & basic windows color scheme 7
    I have windows 7 Home Basic Edition

    Seems that the installation of Turbo C++ runs in compatibility modeof Windows.

    I hope this helps: http://www.sevenforums.com/tutorials/258-color-bit-depth-display-settings.html

  • With the help of AMPA on non - WS Data Controls

    Hello community MAF .

    I'm developing an Application of MAF that consumes the REST API of WebCenter portal (which is based on the model of HATEOAS).

    I want to make powerful from scratch, including the following:

    -Offline mode (using the SQLite).

    -Persistence, of setting cache and synchronization using AMPA.

    Looks like it's not easier to apply directly on the REST API of WCP AMPA.

    The REST API of WCP is the result of a call of two steps:

    1) authenticate using BASIC authentication against http://Host/repos/api/resourceIndex for the utoken

    (2) use utoken as the URL parameter for the next call of REST for the specific service.

    I know that the Bus Service could be a possibility on the creation of a more simple REST on the WCP REST API, but is not an option right now because that is not easy to map.

    My questions are:

    (1) can we use AMPA on data controls in Java that will call internally to (DB in case of offline mode, REST by program in the case of online mode).

    (2) can define us manually in the persistenceMapping.xml?

    (3) is there anything else more easy to use wizards with HATEOAS base based Services?

    Thanks in advance

    Kind regards.

    Daniel,

    Why is it not service bus an option? You say 'not easy to map', but do the mapping in the MAF makes it not easier, it? the REST API of pressurization is not very easy to mobile, so this transformation to a more usable by using bus service API cost as a good idea for me. See also this article from the A-team.

    Answers to your questions:

    (1) Yes, this is the added value of nucleus of AMPA. You get a service generated the DTC Assistant classes, then you turn this class in a bean data control and use this data control bean for the construction of your user interface. The service class will access local DB and the service REMAINS remote. By default, AMPA will directly show the current data of the local DB, and then in the background call the REST service (online) and refresh the UI, once the REST call has been processed. But this behavior is very configurable and can be changed as you wish.

    (2) Yes, of course, you can manually create data objects, classes of service and persistence mappings, but the wizard is generally much faster.

    (3) HATEOAS logical not for the dynamics of UI where the next action is determined by a link returned in the payload. It is a different model from the static of the UI we build in general with MAF. What is your problem with the help of the wizard of the AMPA?

    Steven Davelaar,

    Oracle Mobile & Cloud A-team.

  • with respect to an application to turn with the help of a global static variable

    Hello. I've read a few articles on JavaFX competition, and as a beginner, so I have to practice on this subject. Now, I'm trying to implement a turn-based application which can be played between 3 to 6 players. Furthermore, I use a scene from a .fxml file and I need to update it properly depends on certain calculations of each thread (in other word players). My main problem is, I don't want to use a while loop that checks the status of similar game;

    While (GameState! = State.GAME_OVER) {}

    currentPlayer = GameBoard.getNextPlayer ();

    perform certain actions, calculations, etc.

    }

    So, I want to use threads to work instead while loop. I guess only with the help of the Service used to iterate class and assign the next player will be adapted to instead of using the while loop and the tasks for the calculation of each player, or waiting for a few responses of human players on the UI account, however, I am faced with two problems.

    1. It has a global static variable (like the GameState which is an Enumarator) determines the State of the game, so it should be updated and must be verified by each round. Is it possible to do this?
    2. How can I get rid off this while loop?

    I would like for each answer. Thanks anyway.

    It shouldn't make too much difference. The basic idea is that you have a model class that represents your state of the game (the class of game in example jsmith). When a player makes a move, you update the game state. Because this will result in changes to the user interface, this update must be performed on the Thread of the FX Application.

    If the player makes the passage is a human player, the move would be done by a user action (mouse click or press button, etc.); This will be handled on the FX Application thread in any case.

    When the State of the game changes so it is in an "artificial" player's turn to move, have the object representing the artificial player calculate his next move and then update the game state. Since it is a response to the evolution of the game state (it is the artificial player's turn), it will also be on the Thread of the FX Application.

    The only (slight) complexity comes if the calculation of displacement for the artificial player takes a long time. You don't want to perform this calculation of long duration on the Thread of the FX Application. To handle this, the cleaner is to start a task that computes the desired pass and then updates the status of the game when travel is ready. So, something like this:

    GameState game = ... ;
    // UI is bound to the game state.
    ExecutorService executorService = ... ;
    // ...
    
    final Player currentPlayer = game.getCurrentPlayer() ;
    final Task calculateMoveTask = new Task() {
         @Override
         public Move call() {
              Move move = // compute next move...
              return move ;
         }
    };
    
    calculateMoveTask.setOnSucceeded(new EventHandler() {
         @Override
         public void handle(WorkerStateEvent event) {
              gameState.makeMove(currentPlayer, calculateMoveTask.getValue());
         }
    });
    
    executorService.submit(calculateMoveTask);
    

    If you make a thread more than that, you're probably do badly... Also, there should be no need anything it either, will be held in a "global" static variable (the idea above is the only structural change you the example posted by jsmith).

  • How can I get the name of rulefiles in application with the help of custom java code.

    Hello.
    I want to get the names of rulefiles of analytical service with the help of java api.
    How can I get the name of rulefiles. What api should I use for this problem?

    Hello

    IEssCube.getOlapFileObjects () api allows you to retrieve files of rules.
    Insert this code snipid in your code, it will list all the rules files.

    IEssCube cube = olapSvr.getApplication("Sample").getCube ("Basic");
    ITR IEssIterator = cube.getOlapFileObjects (IEssOlapFileObject.TYPE_RULES);
    RFS [] IEssBaseObject = itr.getAll ();
    System.out.println ("rule file count:" + rfs.length);
    for (int i = 0; i)< rfs.length;="" i++)="">
    System.out.println ("RuleFile" + i + ":" + ((EssOlapFileObject)rfs). getName() ' ");
    }

    You can also list the data files and other objects in file by changing the IEssOlapFileObject.TYPE in getOlapFileObjects()

    Concerning
    Rajeev Singh

  • With the help of the UNION with apex_item.select_list_from_query_xl

    Hello

    I currently have problems with the help of apex_item.select_list_from_query_xl in a select statement with a UNION in it. I have a region of type SQL report and my statement looks like:

    SELECT apex_item.text (c004, 1, NULL, 10) val
    Of apex_collections
    WHERE collection_name = "TABS".
    AND c002 = 'NUMBER '.
    UNION
    SELECT Apex_item.select_list_from_query_xl (1, c004, 'SELECT display_value' |)
    'OF tab_select_list' |
    "WHERE tab_column_sysid = ' |" C005) val
    Of apex_collections
    WHERE collection_name = "TABS".
    AND c002 = 'SELECT LIST'

    (Basically I'm trying to establish a relationship with a text element and a list of selection in there).

    The problem is that some of my selection lists are more than 4000 characters long need to use the apex_item.select_list_from_query_xl. The error returned from the foregoing is ORA-01790: expression must have the same data type as the corresponding expression, which is fair enough as the apex_item.select_list_from_query_xl returns a clob and apex_item.text a varchar2. So I tried casting the apex_item.text on the type clob as follows:

    SELECT to_clob (apex_item.text (c004, 1, NULL, 10)) val
    Of apex_collections
    WHERE collection_name = "TABS".
    AND c002 = 'NUMBER '.
    UNION
    SELECT Apex_item.select_list_from_query_xl (1, c004, 'SELECT display_value' |)
    'OF tab_select_list' |
    "WHERE tab_column_sysid = ' |" C005) val
    Of apex_collections
    WHERE collection_name = "TABS".
    AND c002 = 'SELECT LIST'

    and now I get the error ORA-00932: inconsistent data types: expected - got CLOB, which is unexpected. Someone has ideas how to get around this?

    Thanks in advance...

    Please we say your first name and add it to your forum profile to help us. Thank you.

    Try UNION ALL instead of UNION.

    Scott

  • My AirPort Extreme end not implemented with the help of AirPort Utility

    Bought a used AirPort Extreme (Genesis 4) of a person who showed me that he worked at home. When I try to set up as a Wireless extender to my last existing AirPort Extreme, he will not carry out synchronization upward with AirPort Utility. It appears as a new extreme, but get a message 'unexpected error' before or after the name. Have you tried to reset the two while it is powered and turning the as explained in the help.

    When I try to set up as a Wireless extender...

    Gen 4 airport will connect to your existing AirPort Extreme wireless... or... it will connect using wired Ethernet wired, Permanent?

    .. .it will not accomplish the synchronization upward with AirPort Utility.

    Which version of AirPort Utility?  If it's on your Mac... and you don't know what version you have...

    Open AirPort Utility

    Click the AirPort Utility menu in the upper left corner of the screen

    Click on about AirPort Utility

    Report on the version number you see here

    You have an iPhone or a handy iPad that could be used to implement the 4th Gen airport if the problems continue with the help of your Mac?

  • With the help of iPhone 6 s. try to copy the text message with a tap double and get a bubble with icons. How can I copy the message to paste in another?

    Try to copy a text to paste in another. When I double tap, as I always have, all I get is a bubble with icons on it. With the help of OS 10.0.2.

    maryml wrote:

    Try to copy a text to paste in another. When I double tap, as I always have, all I get is a bubble with icons on it. With the help of OS 10.0.2.

    Press and hold on the text and wait for the copy/more pop up.

  • With the help of Club running on the Nike watch +.

    Hello

    This is something I have tried to work for a while and have not yet been able to find an answer. At the moment I use Nike + management club on my iPhone to follow the tracks that I find that gps is better than just using the application of the workout on my watch. However, something that really bothers me is that I start the race on my phone, but I can't then view my stats while running without having to press on and tap the watch and wait for the application to load, very irritating to race. I want to be able to lift my wrist and live stats are there to watch me, not listening and not get my phone out of my pocket. Surely this is something that can make the original watch?

    As a separate issue with the new app, Nike +, it does not recognize the songs I downloaded on my phone of Apple music in my playlists, then I have to play the separatelay of music through the application of music as opposed to go with Nike +? The ides on how to fix or is this a known problem with the latest Nike + app?

    Hello

    You may find it useful to consult the support resources of Nike and/or contact Nike for assistance with the help of their application:

    More information:

    https://iTunes.Apple.com/us/app/Nike+-run-Club/id387771637?Mt=8

  • With the help of old gear series noon on El Capitan

    I have a Vox Tonelab SE effects audio Board (around 2004), there the old serial midi on the back ports. I hung with the help of a USB MIDI interface cable. While the USB Midi interface to the show in Audio / Midi set upward and also in the profile system for USB port it does not detect the Vox Tonelab so no communication lunch.

    There is a POWERPC application called ToneLabSE SoundEditor which I downloaded and installed in the hope he would install a driver but I guess that this obviously doesn't work on INTEL in any case. Using Wine I can run the PC version, but still no communication via midi.

    Someone at - it ideas, would like to get this Panel communicating effects via MIDI.

    Thank you

    Solved! Using the WINE app I've run the version of the PC of ToneLab SE editor application. So pretty unintuitively by changing the serial midi to USB, SERIAL interface cables that went to the and out on the Tonelab SE. Now of the Se ToneLab editor I can write banks of programs to hardware Tonelab, but unable to empty the banks since the material Tonelab to software. My main desire was to use Expression pedals on the Tonelab as Midi Ableton controllers and some of the switches to the control of the Looper stomp. Now I can do it all. Hooray!

  • With the help of Yosemite, I like Photos app in general; have big Aperture library, although I use rarely opening Tools. Advantages, disadvantages and pitfalls related to the migration of Photos?

    With the help of Yosemite, I like Photos app in general; have big Aperture library, although I use rarely opening Tools. Advantages, disadvantages and pitfalls related to the migration of Photos?

    Opening was a pro the Pro amateur-oriented or serious app, usually shooting Raw, probably on a digital SLR.

    If that's you then pictures will miss a lot for you.

    If this isn't the case, then opening was probably overkill for your needs.

    If you like the pictures then this is the way to go.

  • Thunderbird will only connect if stop then reopened. (With the help of Mac 10.9.4)

    With the help of Mac 10.9.4
    If I open Thunderbird, I can connect to my e-mail address and download the messages. If I select "Get Mail" once again, Thunderbird crashes and fails to connect to my emails. If I then close Thunderbird and re-open it, I'm able to immediately connect to my mail.

    It seems to have sorted itself after a few days. (Fingers crossed). Until today it worked properly. Will keep an eye on things for the next week and the report does so again.

  • Install OSX 10.11.4 I do cleaning but R command will not work. With the help of USB keyboard so not wifi issues to to worry. Help?

    Install OSX 10.11.4 I do cleaning but R command will not work. With the help of USB keyboard so not wifi issues to to worry. Help?

    Would you like to share why you must do a clean install?

    You can try the recovery of the internet (which will work if your older model has been updated to enable of): hold command + Option + R until you see a progress bar (take a while). It will connect you to the Apple servers. When you see the utility window, choose disk utility to erase your disk and when you're done, choose to reinstall OS X.

    Computers that can be upgraded to use OS X Internet Recovery - Apple Support

    PS: Correction: I think not yours can be updated; in this case, you will need the original installation disks to wipe the drive and reinstall.

Maybe you are looking for