-1

I'm working on a project, where I need the effect of clicking on a certain Button to immediately open the .PDF file, the front-end part is all ready, the back-end part end is basically this problem, the project is a mini software to help students, I even have a project for a software teaching step by step the functions of PySimpleGUI.

flower_base64 = b'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'
import PySimpleGUI as sg
file_base64 = b'tem uma imagem aqui'
layout = [  [sg.Text('Base64 Button Demo')],
            [sg.Button('', image_data=file_base64,
            button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='-PDF-')]  ]

window = sg.Window('Flowers!', layout, no_titlebar=True)
while True:             # Event Loop
    event, values = window.read()
    print(event, values)
    if event in (sg.WIN_CLOSED):
        break
window.close()
VcodePy
  • 11
  • 3
  • The button with flower_base64 image and 'Exit' key, it will generate an event 'Exit' after it clicked. In your event loop, it will break from `while` loop to close the window. Should revise it to open your pdf. – Jason Yang Jun 08 '22 at 03:27
  • ok, but then I taking this out, what would be the solution? – VcodePy Jun 08 '22 at 04:23
  • Add one statement `elif event==KEY: ''' The statement to open PDF '''` where the KEY is the key of the button you want to invoke this event. – Jason Yang Jun 08 '22 at 05:17
  • Maybe you can refer https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PDF_Viewer.py – Jason Yang Jun 08 '22 at 06:11
  • I can't install PyMupdf and use fitz on my pc, I'm about to pull my hair out with this problem, I know it's not very difficult but it's making me very sad. – VcodePy Jun 08 '22 at 16:16

2 Answers2

1

Try to use webbrowser to open PDF file.

from pathlib import Path
import webbrowser
import PySimpleGUI as sg

flower_base64 = b'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'

layout = [
    [sg.Input(key='-FILE-'), sg.FileBrowse()],
    [sg.Push(),
     sg.Button('', image_data=flower_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()), border_width=0, key='-PDF-'),
     sg.Push()],
]

window = sg.Window('Flowers!', layout, finalize=True)
sg.theme('DarkBlue4')

while True:             # Event Loop
    event, values = window.read()
    print(event, values)
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == '-PDF-':
        filename = values['-FILE-']
        if Path(filename).is_file():
            webbrowser.open_new(filename)
        else:
            sg.popup(f"File not found: {repr(filename)}")

window.close()

It you want to show PDF as base64 encoded text, use Multiline element for it. Demo code like this

import PySimpleGUI as sg

flower_base64 = b'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'

layout = [
    [sg.Push(),
     sg.Button('', image_data=flower_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()), border_width=0, key='-PDF-'),
     sg.Push()],
]

window = sg.Window('Flowers!', layout, finalize=True)
sg.theme('DarkBlue4')

while True:
    event, values = window.read()
    print(event, values)
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == '-PDF-':
        # Using 'flower_nase64' as example if it is base64-encoded PDF
        sg.Window('Base64 PDF', [[sg.Multiline(flower_base64.decode(), size=(40, 16), disabled=True)]], margins=(0, 0), modal=True).read(close=True)

window.close()
Jason Yang
  • 11,284
  • 2
  • 9
  • 23
  • brilliant Jason, now a question for that solution you sent. if I convert a PDF to BASE64, like the image. Do you think I can do the same with the PDF, to open it on the web. – VcodePy Jun 09 '22 at 01:26
  • By the way the website is: https://base64.guru/converter/encode/pdf – VcodePy Jun 09 '22 at 01:26
  • I'll try to make an animation of how I wanted it to be. – VcodePy Jun 09 '22 at 01:33
  • in this case that you sent, I would have to choose the file, when in fact I wanted the action of the button to open the file set in the code automatically, without having to search. – VcodePy Jun 09 '22 at 01:36
  • stays like this:: https://i.imgur.com/VL9PRtn.gif – VcodePy Jun 09 '22 at 02:24
  • Build one popup window with one Multiline element to show the base64 encoded pdf. Webbrowser is not necessory now. – Jason Yang Jun 09 '22 at 02:42
  • do you know any documentation or an article to put just the 'base64' on the page in multiline? – VcodePy Jun 09 '22 at 16:17
  • Not sure what it is ? – Jason Yang Jun 09 '22 at 16:55
  • I don't know how to insert the 'base64' PDF in the multiline window, create multiline windows I can, the impasse is to just put the file inside, leave it alone, with scrollbar and etc. for reading the pdf. – VcodePy Jun 09 '22 at 21:17
  • I'm close to solving the problem, that's all that's missing. – VcodePy Jun 09 '22 at 21:18
  • Until now, I still don't figure out what your target. Never though everything as it ought to be. It should be described as detail as possible for your question, or people know nothing about your knowledge, otherwise we may spend more time for your unknown question here, and question next again and again. Remember to question only if you stop or get wrong result for something, not a full topic or project. – Jason Yang Jun 10 '22 at 01:36
0

I managed to solve the problem, I want to thank Jason Yang immensely for having the availability to help me.

the result was like this:

the cong.txt file is available for download here: https://www.mediafire.com/file/irtg21gi8zl52xf/cong.txt/file

import PySimpleGUI as sg
import os, sys, subprocess

#how to open a file with graphical interface in python?
#como abrir um arquivo com interface grafica em python?
#¿Cómo abrir un archivo con GUI en python?

file_base64 = b'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'

layout = [
    [sg.Push(),
     sg.Button('', image_data=file_base64, button_color= 
    (sg.theme_background_color(),sg.theme_background_color()), border_width=0, key='-PDF-'),
     sg.Push()],
    ]

window = sg.Window('File!', layout, finalize=True)
sg.theme('DarkBlue4')

while True:
    event, values = window.read()

    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == '-PDF-':
        path_dir_port=('C:/Users/your_name/dir/cong.txt')
        os.startfile(path_dir_port)


        """
        this part of the code is for a next project. Thanks!
        sg.Window('Base64 PDF', [[sg.Multiline(flower_base64.decode(), size=(40, 16), disabled=True)]], margins=(0, 0), modal=True).read(close=True)
        """
        
window.close()
VcodePy
  • 11
  • 3