start default application for read a pdf from python

Discussion in 'Python' started by Angelo Ballabio, Sep 8, 2009.

  1. I try to start a default application for reading a pdf file inside the
    python script.

    I try

    os.startfile(name,option) but say me startfile not implemented

    there are some system to start for example acrobar or okular from the
    script with a name of pdf file?

    thenks Angelo
     
    Angelo Ballabio, Sep 8, 2009
    #1
    1. Advertising

  2. Sorry to not be very specific

    My problem is a way to run a default application to read and show a pdf
    file from unix or windows, i have a mixed ambient in the office, so I am
    try to find a way to start a application to show this pdf file I
    generate whith reportlab. actualy I write a file in a directory and then
    I have to open the directory find a file and open it, I try to find a
    way to do this automatic, in this way then they only have to close the
    windows.

    sorry I do not see before is only for windows, so this means under unix
    system I cant to use.

    thenks for the suggestion


    Angelo


    Grant Edwards ha scritto:
    > On 2009-09-08, Angelo Ballabio <> wrote:
    >
    >> I try to start a default application for reading a pdf file
    >> inside the python script.
    >>
    >> I try
    >>
    >> os.startfile(name,option) but say me startfile not implemented

    >
    > Are you _sure_ it says startfile not implemented? Or does
    > it say this:
    >
    > >>> os.startfile("foo.bar")

    > Traceback (most recent call last):
    > File "<stdin>", line 1, in <module>
    > AttributeError: 'module' object has no attribute 'startfile'
    >
     
    Angelo Ballabio, Sep 8, 2009
    #2
    1. Advertising

  3. On Tue, 2009-09-08 at 22:22 +0200, Angelo Ballabio wrote:
    > My problem is a way to run a default application to read and show a
    > pdf
    > file from unix or windows, i have a mixed ambient in the office, so I
    > am
    > try to find a way to start a application to show this pdf file I
    > generate whith reportlab.


    The (most) portable way to do so in Linux (not necessarily Unix) is to
    use the xdg-open command. Ex,

    subprocess.Popen(['xdg-open', 'my-document.pdf'])

    If you want cross-platform between Linux/Windows, then it's advisable to
    write a wrapper function that checks the value of sys.platform and and
    acts accordingly.

    -a
     
    Albert Hopkins, Sep 9, 2009
    #3
  4. Thenks for this suggestion, at the end I find this solution

    import os
    ..
    ..
    #then where I decide to show the file in the default application I put this

    #file_name the name I construct with path and all necessary
    #recor contain all the data of one record end the 4th position
    #the name of the file
    #for example
    file_name = os.path.join('document',str(record[3]) + ".pdf")
    #the joun function make the separator from ducoment to the file
    #name relative to operatin system (windows '\') , (unix '/')

    #then where I call the default program
    if os.name == "nt":
    os.filestart("%s" % nome_file)
    elif os.name == "posix":
    os.system("/usr/bin/xdg-open %s" % nome_file)

    Other nice solution is

    import webbrowser
    .
    .
    .
    webbrowser.open(file_name)

    The difference is in unix sistem, the first call the default program for
    read the file of type, in this case pdf, this meens okular, acroread, or
    whatever, the second open the konqueror in kde desktop, in windows the
    function os.filestart call the default application for thet type of file

    interesting discussion about this I find in :

    http://ubuntuforums.org/showthread.php?t=1003198

    very thenks to all
    Angelo

    Albert Hopkins ha scritto:
    > The (most) portable way to do so in Linux (not necessarily Unix) is to
    > use the xdg-open command. Ex,
    >
    > subprocess.Popen(['xdg-open', 'my-document.pdf'])
    >
     
    Angelo Ballabio, Sep 9, 2009
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Lars Grøtteland

    Howto start default mail application

    Lars Grøtteland, Oct 16, 2003, in forum: ASP .Net
    Replies:
    5
    Views:
    780
    Eidolon
    Oct 17, 2003
  2. Mike
    Replies:
    9
    Views:
    1,419
    Robbe Morris [C# MVP]
    Nov 30, 2005
  3. albert kao
    Replies:
    3
    Views:
    2,046
    Arne Vajhøj
    Feb 2, 2011
  4. Ricardo Pog
    Replies:
    1
    Views:
    454
    Austin Ziegler
    Mar 26, 2008
  5. Sean Nakasone
    Replies:
    1
    Views:
    400
    Farrel Lifson
    Apr 14, 2008
Loading...

Share This Page