Skip to content

Print Uint8List #25

Description

@blue492

Hi, thanks for this package.

I want to print base64 pdf or base64 image. Is it possible to print Uint8List in printSingleBitmap or is there another function to print it?

Here is my code:

import 'dart:convert';
import 'dart:typed_data';

import 'package:image/image.dart' as img;
import 'package:imin_printer/imin_printer.dart';
import 'package:pdfx/pdfx.dart';

  Future<void> printBase64Image(String base64Image) async {
    final base64String = base64Image.split(',').last;          // Remove 'data:image/png;base64,'
    final Uint8List imageBytes = base64Decode(base64String);

    final iminPrinter = IminPrinter();
    await iminPrinter.initPrinter();

    await iminPrinter.printSingleBitmap(imageBytes);      
    await iminPrinter.fullCut();

  }

  Future<void> printBase64Pdf(String base64Pdf) async {
    final Uint8List pdfBytes = base64Decode('data:application/pdf;base64,' + base64Pdf);
    final doc = await PdfDocument.openData(pdfBytes);
    final page = await doc.getPage(1);
    final imgPage = await page.render(
      width: page.width, height: page.height,
      format: PdfPageImageFormat.png,
    );
    await page.close();
    await doc.close();

    final png = imgPage!.bytes;
    if (png == null || png.isEmpty) {
      print('❌ Render failed');
      return;
    }

    final original = img.decodeImage(png)!;
    final resized = original.width > maxWidth
        ? img.copyResize(original, width: maxWidth)
        : original;
    final mono = img.luminanceThreshold(resized, threshold: 0.5);
    final monoBytes = Uint8List.fromList(img.encodePng(mono));

    final iminPrinter = IminPrinter();
    await iminPrinter.initPrinter();

    await iminPrinter.printSingleBitmap(monoBytes);        
    await iminPrinter.fullCut();
  }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions