gpt4 book ai didi

java - 无法在 PDF 查看器应用程序中打开 PDF

转载 作者:行者123 更新时间:2023-11-30 02:36:56 25 4
gpt4 key购买 nike

<分区>

我有一个类可以打开存储在我的原始资源中的空白字符表(用于 LARP),然后使用 iText 向空字段添加一些值。 PDF 正在很好地存储在 /data/data/package/files 中,但是当我尝试使用 OpenPDF 方法时,出现 EACCES(权限被拒绝) 错误.如果我尝试使用 adb 将其导出到我的计算机,我可以在 PDF 查看器/编辑器中毫无问题地打开它。

对于 Android 开发还是相当陌生,所以我不知道为什么我会收到权限被拒绝的问题。

imports...

/**
* Created by Matt on 10/15/2014.
*/
public class SheetBuilder {

private final String LOGTAG = getClass().getName();

private Context context;
private InputStream inputStream;
private OutputStream outputStream = null;
private PdfReader reader = null;
private Document document;
private PdfWriter writer = null;
private String outputFileName;
private PdfContentByte canvas;

private int alignment = Element.ALIGN_LEFT;

public SheetBuilder(Context context, int sourceFile, String outputFileName) {
this.outputFileName = outputFileName.replace(".pdf", "") + ".pdf";
this.context = context;

inputStream = context.getResources().openRawResource(sourceFile);
try {
reader = new PdfReader(inputStream);
} catch (IOException e) {
e.printStackTrace();
}

try {
outputStream = context.openFileOutput(this.outputFileName, context.MODE_PRIVATE);
} catch (Exception e) {
e.printStackTrace();
}

document = new Document(reader.getPageSize(1));
try {
writer = PdfWriter.getInstance(document, outputStream);
} catch (DocumentException e) {
e.printStackTrace();
}
document.open();
canvas = writer.getDirectContent();
}

public void OpenPDF() {
ContextWrapper cw = new ContextWrapper(context);
File path = cw.getFilesDir();
File pdfFile = new File(path + "/" + outputFileName);
if(pdfFile.exists())
{
Log.i(LOGTAG, "Found " + outputFileName);

Uri uriPath = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(uriPath, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {
context.startActivity(pdfIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "No application available to view PDF", Toast.LENGTH_LONG).show();
}
}
}

public void ImportPage(int PageNumber) {
if(PageNumber == 0) PageNumber = 1;
PdfImportedPage page = writer.getImportedPage(reader, PageNumber);
document.newPage();
canvas.addTemplate(page, 0, 0);
}

public void setAlignment(int Alignment) {
this.alignment = Alignment;
}

public void setAlignment() {
this.alignment = Element.ALIGN_LEFT;
}

public void AddBasicPhrase(String phrase, float x, float y, float rotation) {
Phrase p = new Phrase(phrase);
ColumnText.showTextAligned(canvas, alignment, p, x, y, rotation);
}

public void AddBasicPhrase(String phrase, float x, float y) {
AddBasicPhrase(phrase, x, y, 0);
}

public void Close() {
document.close();

if (outputStream != null) {
try {
outputStream.flush();
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com