- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 PdfBox-Android ( https://github.com/TomRoush/PdfBox-Android ) 库来读取 PDF 文件。当用户单击按钮(w/id file1)时,会弹出一个文件选择器,他或她可以在其中选择要读入的 pdf 文件。但是,当我从用户选择的 URI 中获取 URI 时,文件并使用 EITHER getString() 或 getPath() 获取文件名,我收到以下错误(使用 toString()
):
Exception: java.io.FileNotFoundException: content:/com.android.providers.downloads.documents/document/7306: open failed: ENOENT (No such file or directory)
使用 getPath()
时出现以下错误:
Exception java.io.FileNotFoundException: /document/7097: open failed: ENOENT (No such file or directory)
下面是我的代码:
import com.tom_roush.pdfbox.pdmodel.PDDocument
import com.tom_roush.pdfbox.text.PDFTextStripper
import com.tom_roush.pdfbox.util.PDFBoxResourceLoader
// File picker implementation
private fun chooseFile(view:View) {
println("chooseFile activated!");
var selectFile = Intent(Intent.ACTION_GET_CONTENT)
selectFile.type = "*/*"
selectFile = Intent.createChooser(selectFile, "Choose a file")
startActivityForResult(selectFile, READ_IN_FILE)
}
/* After startActivityForResult is executed, when the selectFile Intent is completed, onActivityResult is executed with
the result code READ_IN_FILE.*/
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == READ_IN_FILE) { // Step 1: When a result has been received, check if it is the result for READ_IN_FILE
if (resultCode == Activity.RESULT_OK) { // Step 2: Check if the operation to retrieve thea ctivity's result is successful
// Attempt to retrieve the file
try {
// Retrieve the true file path of the file
var uri: Uri? = data?.getData();
// Initialize and load the PDF document reader for the file the user selected
var document = PDDocument.load(File(uri?.path));
// Read in the text of the PDF document
var documentText = PDFTextStripper().getText(document);
println("documentText = " + documentText);
document.close();
} catch (e: Exception) { // If the app failed to attempt to retrieve the error file, throw an error alert
println("EXCEPTION: " + e.toString());
}
}
}
}
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Initialize the PDFBox library's resource loader
PDFBoxResourceLoader.init(applicationContext);
setContentView(R.layout.activity_main)
var file1:Button = findViewById(R.id.file1);
file1.setOnClickListener(::chooseFile)
}
最佳答案
在调用 PDFBox 之前,强烈建议初始化库的资源加载器。在调用 PDFBox 方法之前添加以下行:
PDFBoxResourceLoader.init(getApplicationContext());
所以编辑你的代码
.....
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
PDFBoxResourceLoader.init(getApplicationContext());//call this
var file1:Button = findViewById(R.id.file1);
file1.setOnClickListener(::chooseFile)
}
关于java - Android:无法读取用户使用 URI 中的 getString() 和 getPath() 选择的 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59656311/
微软的文档说: Specifies that the corresponding point in lpPoints is a control point or ending point for a
我基本上想得到一个角色的轮廓。我想知道如何在不绘制到 DC 的情况下做到这一点。我可以做这样的事情吗:(伪代码) 开始路径() 文本输出(“H”) 结束路径() 获取路径() 这样的东西对 GetPa
在java中,我必须获取图像的确切位置,该图像位于包内源目录下的文件夹(表情符号)中,但每当我调用时 String s= (Main.class.getResource("Emoticons\\hap
这个问题已经有答案了: Get relative path of a File path? [duplicate] (2 个回答) 已关闭 4 年前。 在此程序中,我尝试选择一个文件并读取该文件的项目
这个问题快把我逼疯了。我想在 src/main/resources 文件夹中访问一个文件,我试图通过以下方式获取路径: FileSystem fileSystem = FileSystems.getD
我正在制作一个涉及编辑文件并用路径替换占位符的程序。 代码如下: List lines = Files.readAllLines(new File(new File(basepath, "Game")
我正在使用 org.apache.commons.io.FileUtils 用于获取指定文件夹(和相关子文件夹)中包含的所有归档 PDF 这里是一个简单的代码 import java.io.File;
我正在尝试使用 AFNetworking(出色的框架)向我的 Web 服务发出 GET 请求。这是请求的代码: AFHTTPClient *httpClient = [[AFHTTPClient
我有超过 600 个 kml 文件需要加载到单个 Google map 中。最初我尝试使用 KmlLayer(),但由于 kml 文件的数量,它不起作用,所以我找到了 GeoXML3,它工作得很好。
我需要用 fileChooser.getSelectedFile() 方法但是它总是返回语言修改路径,因为一些目录在 osX 中被翻译。例如,文件夹“/Downloads”被翻译成我的系统语言“/St
嗨,我正在 js/about 下制作自定义组件.如何制作 getPath()在我的组件中可用?勇敢的组件似乎可以访问它(通过 const {app} = require('electron') )而不
我正在尝试包装需要两个 *.db4o 数据文件以便于使用的代码。我已将数据文件添加到我的 eclipse .classpath 中,方法是将文件放在 ${project_dir}/res/中并添加以下
我正在尝试以这种方式获取文件: final Intent chooseFileIntent = new Intent(Intent.ACTION_GET_CONTENT); String[]
在 Java 7 源代码中,类 Paths有一个方法 - get(URI). 在 get(URI) 中存在: return FileSystems.getDefault().provider().g
我试图获取 Wicket-Component 的路径,但在调用 componentName.getPath() 时它始终只返回 id。 实际上getPath()的返回值与getId()相同。 可能是什
一年前,我为我的毕业作品编写了 JavaFX 2.0 应用程序。但是一年过去了,我的代码出现了问题,以前可以用。 所以,在代码中我想获取文件夹并列出它的文件: File dir = new File(
我正在尝试为 Web 服务器上的 html 文件创建备份文件。 我希望备份与现有文件位于同一位置(这是一个快速修复)。我想使用 File file = new File(PathName); 创建文件
我最近遇到了 getPath() 的问题。 我的代码看起来像这样: File path = new File(Main.class.getResource("/worlds/").getPath())
关于此问题有多个问题(例如,请参阅 here),解决方案似乎是创建一个 getRealPathFromURI 方法,该方法使用一种非常 hacky 的方法来找出文件。我的问题是为什么这首先是必要的?为
我目前正在为我的计算机科学期末制作一个简单的 Java 小程序,它需要获取当前正在运行的类(class)的路径。类文件位于 C:\2013\game\文件夹中。 为了获得这条路径,我在我的主类构造函数
我是一名优秀的程序员,十分优秀!