Opening a PDF Document When Clicking a Button

How to open a PDF document by clicking a button?

Two parts in there:

  • Use the file chooser to select a file (you already got that)
  • Then use that file name with either some Java component that is able to open/present the PDF file; or use javas ProcessBuilder to start a new external process that uses some tool like Adobe Reader to open that file.

More ideas could be found here for example.

HTML - Open local PDF in a new window using a button

You shouldn't be linking to a local file on your own pc. You need to upload the file to your server, like you would do with images, and then link to the path that you place it in.

You should also be able to use target="_blank" for this rather than onclick.
Here is an example set up for the html:

<a href="/books/a-great-book.pdf" target="_blank">

Open A PDF file on button click

This code works for me after I set PDF file build action to content and copy always to output directory.

private async void Button_Click(object sender, RoutedEventArgs e)
{
string imageFile = @"images\somepdffile.pdf";

// Get the image file from the package's image directory
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
if (file != null)
{
bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
if (success)
{
// File launched
}
else
{
// File launch failed
}
}
else
{
// Could not find file
}
}

Opening a .pdf file in windows form through a button click

To open a file with a system default viewer you need call

System.Diagnostics.Process.Start(filename);

But I haven't understood the problem with a filepath.
If you need a relative path from the program .exe file to a folder with resources, then you can add "Resources\" or "..\Resources\" (if Resources folder is higher) to your filepath.

Or you can add your pdf to a project as an embedded resource and then, when you need to open it, you can save it to some temporal location using

Path.GetTempPath()

and open it.

Button that opens a .PDF file

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()

opening pdf file in external storage in default pdf viewer app on a button click

finally I got the answer , now its working , Had to use FileProvider , now it's more like

if anyone facing same problem let me know I will post step by step solution

public void openfile(View v) {

    if (!checkstoragepermission()) {
requestReadpermission();`
}else {
File pdfFile = new File(Environment.getExternalStorageDirectory() + "/Zio
app/" + "/materials/"+"notes.pdf"); // -> filename = maven.pdf
if (pdfFile.exists()) {

File imagePath = new File(Environment.getExternalStorageDirectory() + "/"
+ "Zio app" ,"materials");
File newFile = new File(imagePath, "notes.pdf");
Uri path = FileProvider.getUriForFile(this,
"com.example.zio.fileprovider", newFile);

Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = Intent.createChooser(pdfIntent, "Open File");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), "No Application available to
view PDF", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(NewActivity.this, "No such file exists",
Toast.LENGTH_SHORT).show();
}

}

}

on Button click redirect to open PDF from link

If your pdf source is a link, you can either download the pdf first or open it using WebView. Here is some link that might be of help.



Related Topics



Leave a reply



Submit