When the user saves a pdf as a png image, is this lossless?

Hi, I know that the user can save a pdf as an image (or rather as a series of images). And I know that saving to a jpg is not lossless. But what about saving to a png? Is this lossless?
If not, then my question becomes general: does Acrobat give the user a lossless way to save a pdf as an image?

Actually, I think we missed a very important point at the beginning. Saving PDF pages to an image almost always causes severe quality losses that are nothing to do with compression. Here's why.
A PDF is a mixture of some or all of:
- text
- vector art (shapes, lines, etc.)
- raster images (originally TIFF, JPEG or whatever) at DIFFERENT resolutions
Now, if you save a page of a PDF to a raster format, then what happens to the above is:
- text must be converted to a raster format. It is no longer text, free to scale and sharp to read at anysize
- vector art must be conveted to a raster format with similar losses to text
- raster images have to be converted to the final resolution. Unless the resolution of the image and of the exported graphic happen to be the same there will be quality losses
So, whether you choose JPEG, PNG or whatever, it is only in a very small set of circumstances lossless. That is, when the PDF contains nothing but raster images, all at the same resolution, which is the same as the exported resolution.

Similar Messages

  • Dynamically change the document when the user opens it through a PDF Portfolio

    Hello
    I'm generating a PDF Portfolio using LiveCycle PDF Generator. I need to dynamically change the document that is presented when the user opens a PDF portfolio.
    Can anyone give ideas on how to accomplish this using the portfolio and navigator API?
    Thank you

    That was it. What an operating system. It is very helpful to view files you are looking for. But if you have preview on you cannot save files.

  • How can I embed a PDF in my Captivate 5.5 project that will open in a new window when the user click

    I put a glossary button in my project. When the user clicks on the button, I want the file to open in a new browser window. This works in preview mode, but not when I publish it. What am I doing wrong?

    I've tried the download three times. It reports that installation was successful, but when I use Firefox I still get only an option to download the .pdf; I still can't read it within the browser. This fix WAS for Firefox 5.0, right?

  • Use Artboards disabled when trying to save as PDF in Illustrator CC

    Use Artboards disabled when trying to save as PDF in Illustrator CC

    Then there's no reason to "Use Artboards". If you had multiple artboards in the file, then you could choose among them for the output but with a single artboard, only one will be output.

  • Cancel download method when the user cancel the download file

    I have a method that download a file ("downloadLog_action()")when the user click over the comandlink component and the dialog box is opening to save the file, but how to know that the user canceled the download file to cancel all accions.
    This is the code of the commandlink in the jspx page that call the method and pass one parameter:
    <af:commandLink binding="#{ConsultaValidacion.commandLink1}"
    id="commandLink1"
    action="#{ConsultaValidacion.descargarLog_action}"
    text="Log">
    <f:param name="codInstitucion"
    value="#{row.CodInstitucion}"
    binding="#{ConsultaValidacion.codInstitucion}"
    id="codInstitucion"/>
    </af:commandLink>
    This is the method to download the file:
    HttpServletResponse response = (HttpServletResponse)fctx.getExternalContext().getResponse();
    response.setContentType("application/x-download");
    response.setHeader("Content-Disposition", "attachement; filename=\"Log_" +
    codigoInstitucion + ".txt\"");
    response.setContentLength((new Long(blob.getLength())).intValue());
    //Streams de entrada y salida
    InputStream is;
    OutputStream out;
    try {
    //Obtenemos el stream de entrada el cual se lo extrae de la BD
    is = blob.getInputStream();
    //Obtenemos el stream de salida para el cliente
    out = response.getOutputStream();
    //Sección de código que me permite escribir los datos en el stream de salida
    int size = (new Long(blob.getLength())).intValue();
    byte[] buffer = new byte[size];
    int length = -1;
    while ((length = is.read(buffer)) != -1) {
    out.write(buffer, 0, length);
    //Cerramos los streams
    out.flush();
    is.close();
    out.close();
    *//Una vez descargado todo el LOG actualizamos el contador. HERE IS THE PROBLEM BECAUSE THE COUNTER IS UPDATING WHEN THE USER CANCEL THE DOWNLOAD!!! AND ITS WRONG*
    row.setNumDescargaLog(new Number(num + 1));
    //Guardamos los cambios
    webRvc.getAppModuleWebRvc().getDBTransaction().commit();
    //Request lifecyce understands that the response is completed and no further action needs to happen
    fctx.responseComplete();
    } catch (IOException e) {
    e.printStackTrace();
    webRvc.close("Consulta bitacoras validacion");
    return null;
    } catch (JboException ex) {
    webRvc.getAppModuleWebRvc().getDBTransaction().rollback();
    webRvc.close("Consulta bitacoras validacion");
    return null;
    This works fine.
    The problem occurs when the user cancels the download, because all the sentences run including updating the counter downloads, the counter only to be updated only when the user chooses to save the file.

    Hi.
    The problem is when the user cancel the dowload I do not know how to capture the user's response.
    How to capture the response?
    if(cancelled) <------Is there a parameter to tell me this?
    ......<your cancel code>..... none
    else
    .....<your non-cancel code>...THE METHOD THAT DOWNLOAD THE FILE - "downloadLog_action()" and increment the counter
    Thanks.

  • Can I pause my project when the user clicks?

    Hello all,
    I am working on a project using Cp4.
    My project plays automatically without user interaction.
    I need project to be paused when the user clicks on a clickbox at run time & it should play when the user again clicks the same clickbox.
    I can pause the project by adding a clickbox and applying the property "pause the project until user clicks.
    But it must be a user wish interaction whether to pause or play.
    Is that possible ? How could I make my work done ?
    Regards,
    Kartik.P

    Hello,
    I tried it out and it works all right. If you do not want a button, you can also replace this by a click box (that is invisible), perhaps covering up the whole slide and instruct the user just to click on the slide to pause or to 'un'-pause.
    As for the construction of the Advanced action (do have a couple of tutorials, but they are for CP5):
    Open the dialog box from Project Actions
    Be sure to be on the tab Advanced Actions and choose Create a new action from the dropdown list
    Name the action
    Double click on the first statement, it has to become red
    Use the spacebar to open a list, and choose Assignment
    From the first dropdownlist choose Variable rdcmndPause
    From the second list (after the =) choose Value
    Type in 1 for the value
    From the third list choose the minus sign
    From the fourth, choose again Variable and from the list choose rdcmndPause
    Save the action
    It is a bit clumsy, but the result should look like this:
    Lilybiri

  • How to catch an event when the user change values in the project information dialog

    hi,
    i would like to know how to catch an event in my C# code when the user change values in the project information dialog?
    taskChange doesn't catch these changes.
    thanks.
    Thanks, Sharon.

    You need to write save button event handler for project information dialog. Link is having same functionality described. 
    http://blogs.msdn.com/b/husainzgh/archive/2011/08/01/hooking-into-the-project-detail-page-ribbon-save-button-without-overriding-out-of-box-functionality-in-project-web-access-for-project-server-2010.aspx
    http://www.projectserver2010blog.com/2010/01/sharepoint-2010-webpart-client-server.html
    kirtesh

  • When the user Clicks the Modify button remaining Buttons should be dispayed

    Hi experts,
                         In my application  I have 3 fields and three buttons(Modify ,save and cancel)...The 3rd field is DATE field ...i have to display only MODIFY..and the remaining 2 buttons should be disable mode at Runtime.
    1) when the user clicks the MODIFY button....then only other two buttons should be visible in my current application.
    2) when the user clicks the SAVE button....the 3rd field should displayed with current date or System date.
    3)whenever the user modify the details using modify button...meanwhile if the user clicks the cancel button...all three fields goes to Read only mode...
    Thanks In advance for all.
    how can i write the logic for all these 3 requirements...can anybody plz help me...
    Regards,
    Praveena..
    Edited by: s.praveena on Jun 14, 2010 7:36 PM
    Edited by: s.praveena on Jun 14, 2010 7:39 PM
    Edited by: s.praveena on Jun 14, 2010 8:01 PM

    Basically you want to handl the visibility and read-only properties of the UI elements at runtime.
    To handle visibility property create a context attribute of type WDUI_VISIBILITY and bind it with the UI element's visible property.
    in MODIFY action handler set this context attribute to IF_WDL_CORE=>VISIBILITY_VISIBLE to make it visible
                                                                                    IF_WDL_CORE=>VISIBILITY_NONE to make it invisible.
    Similarly to handle the read-only behaviour, create the context attribute of type WDY_BOOLEAN and bind it with the readonly property of the UI element.
    and in action handler assign a value to the context attribute. ABAP_TRUE to make it readonly
                                                                                    ABAP_FALSE to make it editable.

  • How to Check when the user is connected to different desktop.

    How to Check when the user is connected to different desktop.Sometimes the user maynot see the theme in the personalize theme list. In that case the person must be using different kind of desktop.How to check, I need a path.And how to apply the theme to that user?
    Thanks,
    Paturi

    Hi,
    you can create the new portal desktop from
    System Administration => Portal display => Desktop and Display Themes
    Select your folder from Portal Content and from its context create new Desktop.
    Add The Framework page and the theme to this desktop page.
    Go to your folder from Portal Content and from the context of the framework page select add framework page to portal desktop.
    Adding Theme to desktop
    From Portal content select Theme folder and select the theme right click it and select Add theme to Portal Desktop.
    Create rule for the Desktop.
    Navigate to System Administration => Portal Display => Desktop and Display Themes Portal Content => Portal Administrators => Super Administrators =>main_rules.
    Click Add IF Expression.
    create the expression if user = xyz then click on apply
    Select the then clause of the if and navigate to your folder where Desktop is created ,Add it and Click Apply.
    Save the Changes to the rule.
    Hope it helps you.
    (reward points if its helpful)
    Thanks,
    Gunjan

  • How do I sign my VB / VS 2010 based shared COM add-in for Excel so it loads when the user has checked "Require application add-ins to be signed by a trusted publisher"?

    My COM add-in is developed using VS 2010 and VB. It's a shared COM add-in (not VSTO) and it works with Excel 2007 - 2013. My installer is signed with a code signing certificate but it would appear that my add-in's .dll should also be signed if the user has
    checked the "Require application add-ins to be signed by a trusted publisher" option.
    The "Sign the assembly" option is checked in my add-in's VB -> My Project -> Signing. I have a .snk file selected which I seem to recall generating 6 or 7 years ago when I ported the COM add-in from VB6 to .NET. 
    I have an up-to-date Comodo code signing certificate (a pfx file called MyCompanyCodeSigningCertificatePrivateKey.pfx) which I purchased to use with the installer and was wondering if and how I could use this.
    I tried selecting my pfx file in the My Project -> Signing -> "Choose a strong name key file" dialog. It made a copy of the pfx file in my project folder but when I tried to build the project, I got the following error:
    Error 1 Cannot import the following key file: MyCompanyCodeSigningCertificatePrivateKey.pfx. The key file may be password protected. To correct this, try to import the certificate again or manually install the certificate to the Strong Name CSP with the
    following key container name: VS_KEY_C0B6F251F0FB6016
    After a little research, I found out I might be able to use signtool to sign the dll in a post-build step.
    I added the following command to the post-build event, before the command I use to regasm the assembly.
    "path to signtool\signtool" sign /f "MyCompanyCodeSigningCertificatePrivateKey.pfx" /p "xxxx" /v "$(TargetPath)"
    When I built the project, the dll appeared to get signed (the output window showed a bunch of confirming text as well as "Successfully signed: c:\MyAddIn\bin\Release\MyAddIn.dll") but the next step in the post-build (regasm myaddin.dll /codebase)
    issued a warning RA0000 (see below) but reported "Types registered successfully".
    Here's the message I get from regasm, even though the output window says the dll was sucessfully signed:
    RegAsm : warning RA0000: Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
    Types registered successfully
    I'm not using a shim if that makes a difference.
    How do I sign my add-in so it loads when the user has checked "Require application add-ins to be signed by a trusted publisher"?
    Any tips would be appreciated.

    Hello,
    Why do you need to use the regasm utility from the post-build action?
    There is a difference between signing the assembly with a strong name and digital signature. The
    How to: Sign an Assembly with a Strong Name article in MSDN explains how to sign an assembly with a strong name (.snk). See
    How to digitally sign a strong named assembly for adding a digital signature.
    You may also find the
    What's the Difference, Part Five: certificate signing vs strong naming article helpful.

  • How to call an action when the user selects a radiobutton

    Hai
    PLease help me in providing the information.
    In my Project i have two radio buttons as
    New
    Asssessment
    when the user selects new button, i want to automatically call an action in the controller(.jpf file)
    Simalarly when he selects the other radio button i need to call a separate action in the controller.
    Remember i dont have the submit button.
    I want to dynamically call an action when the user selects the radio button.
    i dont have any field inthe radio button which actually takes action as an attribute .
    please provide me the necessary

    Hi,
    You can use JavaScript to call the action in interest upon the Radio Button Element Being Selected.Should be simple, and if your controller is part of the portlet dont forget to use the jpfScopeId to asscoiate the controller instance with the one in the portlet.
    Let me know if you have any further questions.

  • How to clear text fields when the user navigates back to the screen

    Hi,
    Does anyone have any idea on how to clear the text input fields and dropdown boxes when the user navigates back to the screen, say for e.g. create screen?
    My issue is that i have plenty of fields in the create screen within a form. Is there a way to avoid programaticaly blanking out every field and just do it at the form level using an api to reset to a state before the user entry?
    Thanks

    This code allows you to make it more generic, and you would need to tweak it if there are more than TextInput controls, but it should provide some ideas.
    As far as using states, you could use SetProperty to set the text to empty, but that might be messier.
    <?xml version="1.0"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
      <mx:Script>
        <![CDATA[
          import mx.containers.FormItem;
          import mx.controls.TextInput;
          import mx.events.IndexChangedEvent;
          import mx.core.Container;
          private function clearSreen(evt:IndexChangedEvent):void{
            var view:Container = tn.selectedChild as Container;
            for each(var child:Object in view.getChildren()){
              if(child is FormItem){
                var subchild:DisplayObject = child.getChildAt(0);
                if(subchild is TextInput){
                  TextInput(subchild).text = "";
        ]]>
      </mx:Script>
      <mx:TabNavigator id="tn" resizeToContent="true"
        change="clearSreen(event)">
        <mx:Form id="frm1" label="View Number One">
          <mx:FormItem label="First name:">
            <mx:TextInput/>
          </mx:FormItem>
          <mx:FormItem label="Last name:">
            <mx:TextInput/>
          </mx:FormItem>
        </mx:Form>
        <mx:Form id="frm2" label="View Number Two">
          <mx:FormItem label="Address1:">
            <mx:TextInput/>
          </mx:FormItem>
          <mx:FormItem label="Address2:">
            <mx:TextInput/>
          </mx:FormItem>
          <mx:FormItem label="City:">
            <mx:TextInput/>
          </mx:FormItem>
          <mx:FormItem label="State:">
            <mx:TextInput/>
          </mx:FormItem>
          <mx:FormItem label="Zip code:">
            <mx:TextInput/>
          </mx:FormItem>
        </mx:Form>
      </mx:TabNavigator>
    </mx:Application>
    If this post answers your question or helps, please mark it as such. Thanks!
    http://www.stardustsystems.com
    Adobe Flex Development and Support Services

  • How to get the Useru2019s position when the user doesnu2019t have CP relation

    We have a custom program which will add / delete attributes (In transaction PPOSA_BBP). It is working fine for users which were assigned with CP relation But it fails for users which doesnu2019t have CP relation (since we are getting the position of users form HRP1001 then we are retrieving the existing attributes based on the position after that updating the attributes) as we are getting the position from HRP1001 it fails for users were no CP relation.
    Help us how to get the Useru2019s position when the user doesnu2019t have CP relation. Suggest us any function module or how to query the HRP1001 or some other table if exists
    Regards
    Paul

    Hi Paul,
    Have a look at these tables.
    Using table BUT000 the central business partner data are stored, f.e. partner type, partner names, partner number, partner guid, person number, etc. In table BUTBKK the bank data to a business partner are stored.
    Central business partner address data
    The table ADRC is used for the address of a business partner. Table BUT020 links the business partner number with the address number. Using table BUT021 several addresses to a business partner with different usages (modes), f.e. correspondence or delivery address, can be stored. The personal data of a business partner person are stored with key person number in table ADRP. The person number is assignd to a business partner person in table BUT000. Communication data of business partners as e-mail, telephone, fax, etc. are stored in the tables ADDR1 u2013 ADDR12. The business address of a contact person or an employee consists of the organization address (company resp. org.-unit) and of an address addition, which describes f.e. a building, a room number, etc. The address addition is stored in table ADCP and is identified by the keys address number of the organization address and person number.
    Relationships between business partners
    Table BUT050 contains the relationships between a business partner organization and a business partner person using relation types. The relation types are defined in table TBZ9, f.e. the relation type u2018has employeeu2019 corresponds to identifier u2018BUR010u2019, the relation type u2018has contact personu2019 corresponds to identifier u2018BUR001u2019. Table BUT051 stores communication data of a contact person relationship (compare to table ADCP). Table BUT052 stores several address numbers to one business partner relationship (including a standard flag).
    Hope this helps,
    Kind Regards,
    Matthew

  • How to preven JButton of generated actions when the user keep pressing down

    How to preven JButton of generated actions when the user keep pressing down the key or the short cut
    The code below to show the issue when the user keep pressing Alt+ O
    We want to prevent the JButton from generating multi actions just one action only
    A sample of code shows the behaviour which has to be prevented. Continue pressing "Alt +O" and you will see the standard ouptput will print time stamps
    Please notice, I am NOT interested in Mouse press which has a solution by adding a threshold ( setMultiClickThreshhold(long threshhold) on the JButton  as an attribute.
    public class TestPanel extends JPanel
       private JButton btn;
       public TestPanel()
          btn = new JButton("Open");
          this.add(btn);
          registerCommand(new MyAction(), InputEvent.ALT_MASK,
                KeyEvent.VK_O, btn, btn.getText(), 0);
       public static void registerCommand(AbstractAction action,
             int mask,
             int shortCommand,
             JComponent component,
             String actionName,
             int mnemonicIndex)
          InputMap inputMap = component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
          KeyStroke knappKombination = KeyStroke.getKeyStroke(shortCommand, mask);
          if ((component instanceof AbstractButton)
                && mnemonicIndex >= 0
                && mnemonicIndex < actionName.length()
                && (shortCommand >= KeyEvent.VK_A && shortCommand <= KeyEvent.VK_Z))
             ((AbstractButton) component).setDisplayedMnemonicIndex(mnemonicIndex);
          if (inputMap != null)
             ActionMap actionMap = component.getActionMap();
             inputMap.put(knappKombination, actionName);
             if (actionMap != null)
                actionMap.put(actionName, action);
       public static class MyAction extends AbstractAction
          private static final long serialVersionUID = 1L;
          @Override
          public void actionPerformed(ActionEvent e)
             System.out.println(System.currentTimeMillis());
       public static void main(String... args)
          SwingUtilities.invokeLater(new Runnable()
             public void run()
                JFrame frame = new JFrame("Testing");
                JPanel panel = new TestPanel();
                frame.getContentPane().add(panel);
                frame.setPreferredSize(new Dimension(500, 500));
                frame.setMinimumSize(new Dimension(500, 500));
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
    }Edited by: user12130673 on 2013-feb-13 03:01

    Use KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease) with onKeyRelease=true instead?

  • Error message "Enter a Printer" when the user clicks on PO out put preview

    Dear SRM Gurus,
    We are using SRM 5.5 extended classic scenario. When the user presses on Output Preview of PO we are getting a message that "Enter a Printer" and not able to see the preview. This messge we are getting for some particular PO's and for other we are able to see the preview.
    Please do the needful..
    Thanks and Regards,
    Chandra Sekhar.

    Hi
    <u>Please maintain default  Printer for Organizational user in PPOMA_BBP (Attribute  - PRI)...</u>
    <u><b>In PPOMA_BBP, your purch org must be defined under (or at the same level as) a company. This company org id (defined in function tab) will be used to read address and use it as "contact" addresse. Check this point, correct if necessary and tell me if this is ok.</b></u>
    <u>Also go through the useful related links -></u>
    Re: PO output
    Re: Add a Printer ?  -> LP01
    Re: Adding Send Medium to Vendor Record
    Re: Offline approval of SC
    <u>Do let me know.</u>
    Regards
    - Atul

Maybe you are looking for

  • I can't get Mobile User to work

    When I click on Sync Home Now, I get You must have a mobile account to use this feature. To create a mobile account, open system preferences, click account, then click create. IF these items are missing or disabled, see your system administrator. on

  • How do i save audio files in Icloud?

    hi

  • Best Order to Perform Cleaning and Maintenance?

    Hello. Is there any order that's best to run System Maintenance Scripts, Caches cleaning, Optimizing the System, and Rebuilding the Launch Services Database? Do I need to restart between any of the operations, or just one time after they're all compl

  • How to communicate with HID USB device under windows XP with Labview

              I have designed a EZ-USB FX2 device and I need to communicate with LabVIEW. I mean I just want to send and receive data. I don't know how to achieve this goal.Someone have advised me to design a HID device,then use VISA Driver Development W

  • Could not load file or assembly DreamweaverCtrls

    Hello, I've been researching my issue, but haven't had any luck in getting it resolved. So, i'm hoping someone can please help me! I'm using DW 8 and am trying to load a simple asp.net application. The application works perfectly fine on my local ser