question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Gif does not appear when inserted into document

See original GitHub issue

Bug Report

Description of the problem

I have a GIF image which I wish to embed in a pdf document(I cannot compromise, it must be a GIF, and cannot be converted to png or jpeg). For some reason, I cannot insert this GIF image into a document without an error stating “Error: Unknown image format.” I do not know why this is happening, but it seems like PDFKit cannot support images in the GIF format, this error exists both on the live editor, my ubuntu desktop and ubuntu server. I’ll attach some code below which you can try in the PDFKit live demo, and see for yourself what’s wrong. Try starting with only the png image, then uncomment the GIF image and see what happens. http://pdfkit.org/demo/browser.html

Code sample

var doc = new PDFDocument();
var stream = doc.pipe(blobStream());

doc.image("data:image/png;base64,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",0,0)
// .image("data:image/gif;base64,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",100,100)
;

doc.end();
stream.on('finish', function() {
  iframe.src = stream.toBlobURL('application/pdf');
});

Your environment

  • Node version: v10.15.2
  • Browser version (if applicable): Version 80.0.3987.100
  • Operating System: Ubuntu server edition

Issue Analytics

  • State:open
  • Created 4 years ago
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
Whobeucommented, Sep 10, 2021

I see the last comment is over 1 1/2 years old but this might still be relevant. I ran into this problem trying to embed some GIF’s from the National Weather Service in a document (rather annoying as most of the images I want are PNG but a few are still GIF). Of course, before I actually re-read the documentation and saw that GIF’s were not supported, I got an error from PDFKit about the unsupported format. I spent time looking around trying to find a solution and eventually wound up rolling my own based on a GIF conversion module I found on npm that works entirely with JavaScript.

The following code takes a URL, retrieves the GIF, converts the first frame to PNG format (other formats are supported like JPG but I wanted PNG) and returns a Buffer containing the PNG. That Buffer can then be inserted into the PDF with the PDFKit .image() method. It has been working fine in my Windows and Linux environments without any native code dependencies.

"use strict";

const gifFrames = require("gif-frames");
const { WritableStreamBuffer } = require("stream-buffers");

const InitialBufferSize = 800;
const OneK = 1024;

/**
 * @param {string} url URL to retrieve GIF from
 * @returns {Promise<Buffer>} a Promise with a Buffer
 */
exports.convertGifToPng = (url) => {
  return new Promise((resolve) => {
    const writer = new WritableStreamBuffer({ initialSize: InitialBufferSize * OneK });

    gifFrames({
      url,
      frames: 0,
      outputType: "PNG"
    }).then((frameData) => {
      frameData.shift().getImage().pipe(writer);
    });

    writer.on("finish", () => {
      resolve(writer.getContents());
    });
  });
};

0reactions
Whobeucommented, Sep 10, 2021

I also wanted to write the above code in Typescript but there were no type definitions so I wound up rolling my own. Due to my use of the newer “intrinsic” available in Typescript 4.1+, I did not bother submitting to DefinitelyTyped as they current have a minimum support of Typescript 3.7 (plus I only got about 1/3 of the way through their submission requirements and went into TL;DR mode):

/**
 * Typescript definitions for gif-frames (gif-frames.d.ts)
 *
 * @see https://www.npmjs.com/package/gif-frames
 */

declare module "gif-frames" {
  import { WriteStream } from "fs";

  interface FrameInfo {
    /** Image Left position */
    x: number,
    /** Image Top position */
    y: number,
    /** Image Width */
    width: number,
    /** Image Height */
    height: number,
    /** Image local palette presentation flag */
    has_local_palette: boolean,
    /** Image palette offset */
    palette_offset: number,
    /** Image palette size */
    palette_size: number,
    /** Image data offset */
    data_offset: number,
    /** Image data length */
    data_length: number,
    /** Transparent Color Index */
    transparent_index: number,
    /** Interlace Flag */
    interlaced: boolean,
    /** Delay Time (1/100ths of a second) */
    delay: number,
    /** Disposal method */
    disposal: number
  }

  type FrameData = Array<{ getImage(): WriteStream | HTMLCanvasElement, frameIndex: number, frameInfo: FrameInfo }>;

  /**
   * @description supported output types by module save-pixels-jpeg-js-upgrade.
   */

  type OutputTypes = "JPG" | ".JPG" | "JPEG" | ".JPEG" | "JPE" | ".JPE" | "GIF" | ".GIF" | "PNG" | ".PNG" | "CANVAS";

  // See https://newbedev.com/typescript-type-ignore-case for information on
  // case insensitivity support using Uppercase<>. Requires Typescript 4.1+ for
  // intrinsic support.

  export function gifFrames<T extends string>({ url, frames, outputType, quality, cumulative }: { url: string, frames: number | string, outputType?: Uppercase<T> extends OutputTypes ? T : OutputTypes, quality?: number, cumulative?: boolean }, callback?: (error: Error, frameData: FrameData) => void): Promise<FrameData>;
}
Read more comments on GitHub >

github_iconTop Results From Across the Web

Insert a Gif into a word doc - Microsoft Community
-In word, select the location to embed the gif file. When you double click the gif's icon and open it, your browser will...
Read more >
How to insert animated GIF in Word document
Launch Microsoft Word. · Click the Insert tab, click Picture, and choose This Device. · Select the GIF you have downloaded and click...
Read more >
How to Insert an Animated GIF Into a Word ... - groovyPost
Click on the GIF you wish to insert. Select Insert to add the GIF to your document.
Read more >
2 Methods to Insert an Animated GIF Image into Your Word ...
Given to the fact that they are more vivid than usual images, how about insert gif images into our Word documents? What a...
Read more >
After inserting a gif into Word, it doesn't work (it doesn't move ...
Word is intended to create documents for printing, you can't print something animated so it makes no sense for word to support animated...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found