当前位置: 首页 > 知识库问答 >
问题:

使用URI与Kotlin解析pdf?

卫阳曜
2023-03-14

我在Android Studio中编写Kotlin代码。用户从电话中选择一个文件(我需要以字符串的形式访问内容)。我得到了一个乌里?。和那个乌里?我可以从.csv和.txt文件中提取文本:

if (typeOfFile == ".txt" || typeOfFile == ".csv") {
            try {
                val ins: InputStream? = contentResolver?.openInputStream(uriFromSelectedFile)
                val reader = BufferedReader(ins!!.reader())
                textIWant = reader.readText()
if (typeOfFile == ".pdf") {
            try {
                val myPDDocument:PDDocument = PDDocument(COSDocument(ScratchFile(File(uriFromSelectedFile.path))))
                textIWant = PDFTextStripper().getText(myPDDocument)

...

我已经试了好几天了。有没有人知道,在Kotlin是怎么运作的?

共有1个答案

连成益
2023-03-14

它可以使用tom_roush.pdfbox和一个附带对象:

import com.tom_roush.pdfbox.text.PDFTextStripper

class MainActivity : AppCompatActivity() {

companion object PdfParser {
    fun parse(fis: InputStream): String {
        var content = ""
        com.tom_roush.pdfbox.pdmodel.PDDocument.load(fis).use { pdfDocument ->
            if (!pdfDocument.isEncrypted) {
               content = PDFTextStripper().getText(pdfDocument)
           }
        }
        return content
    }
}

调用同伴对象的解析函数:

val fis: InputStream = contentResolver?.openInputStream(uriFromSelectedFile)!!
textIWant = parse(fis)
 类似资料:
  • 问题内容: 我希望将我的网站转移到完全异步文档加载中,但是我不想使用请求处理的方法,因为1)我不想破坏链接,以及2)我想要一种更灵活的处理方式网站获取的URI。 我已经能够为我的网站构建一个简单的MVC,该MVC允许使用通用样式的网址(例如:http://ddrewdesign.com/blog/jquery-is-or-is-child-of- function )来制作正确的要求。 我的问题是

  • 问题内容: 我有这样的XML: 现在,我学习Kotlin进行翻新。我包括用于解析xml的库,但我不明白如何创建用于解析此xml的对象。我有对象: 但我有错误: rg.simpleframework.xml.core.ConstructorException:默认构造函数无法接受类ac中方法“ aries”上的@ org.simpleframework.xml.Element(data = fals

  • 我正在尝试使用kotlin中的simplexml解析rss提要。 该订阅源是itunes的顶级播客订阅源 返回的数据具有以下结构: 我关心的部分是条目标签包含的播客列表。 我的模型类如下所示: 我有一个简单的单元测试,从文件中加载xml,将其传递给简单的exml反序列化器,然后将输出与一些预期的模型进行比较。 当我运行测试时,我得到一个异常: 向@ElementList注释中添加必需=false会

  • 本文向大家介绍java.lang.Void类的解析与使用详解,包括了java.lang.Void类的解析与使用详解的使用技巧和注意事项,需要的朋友参考一下 今天在查看源码的时候发现了 java.lang.Void 的类。这个有什么作用呢? 先通过源码查看下 从源码中发现该类是final的,不可继承,并且构造是私有的,也不能 new。 那么该类有什么作用呢? 下面是我们先查看下 java.lang.

  • val homeFeed=gson.fromjson(正文,列表::class.java) 我的代码:

  • 我试图使用新的相机硬件API(android.hardware.camera2)的示例代码为我的Android应用程序。首先,我通过Android Studio的静态编程语言插件的自动转换功能将Java代码转换为静态编程语言代码。下面是一段转换后的代码: 我得到了未解决的引用错误: 但是这些常数在原始Java代码中是可以识别的。这些错误有什么解决办法吗?