如何在Flutter中将pdf转换为文本?

时间:2018-10-26 20:29:52

标签: dart flutter

我想阅读用户给定的PDF文件。将其转换为文本。但它在Android和iOS上都应能工作。

2 个答案:

答案 0 :(得分:3)

这是一个复杂的主题,我只能给您提示。

没有用于此的飞镖库。您可以在iOS / Android上本地实现它,并使用平台渠道与本地代码进行通信,也可以使用在线服务进行转换。

例如,您可以在Firebase Cloud Functions中使用Ghostscript。 Ghostscript能够将pdf转换为文本。

  1. How to extract text with Ghostscript
  2. How to use Ghostscript in Firebase Cloud Functions
  3. How to use Firebase Cloud Functions in Flutter

答案 1 :(得分:0)

尝试使用"pdf_text"插件。您可以使用此插件将pdf转换为文本。

  /// Picks a new PDF document from the device
  Future _pickPDFText() async {
    File file = await FilePicker.getFile();
    _pdfDoc = await PDFDoc.fromFile(file);
    setState(() {});
  }

  /// Reads a random page of the document
  Future _readRandomPage() async {
    if (_pdfDoc == null) {
      return;
    }
    setState(() {
      _buttonsEnabled = false;
    });

    String text =
        await _pdfDoc.pageAt(Random().nextInt(_pdfDoc.length) + 1).text;

    setState(() {
      _text = text;
      _buttonsEnabled = true;
    });
  }

  /// Reads the whole document
  Future _readWholeDoc() async {
    if (_pdfDoc == null) {
      return;
    }
    setState(() {
      _buttonsEnabled = false;
    });

    String text = await _pdfDoc.text;

    setState(() {
      _text = text;
      _buttonsEnabled = true;
    });
  }