pdf-to-markdown-mcp 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.js CHANGED
@@ -63,7 +63,7 @@ async function main() {
63
63
  }
64
64
  const server = new McpServer({
65
65
  name: "pdf-to-markdown-mcp",
66
- version: "1.0.2",
66
+ version: "1.0.3",
67
67
  });
68
68
  // Register tool
69
69
  server.registerTool("convert_pdf_page_to_markdown", {
@@ -1 +1 @@
1
- {"version":3,"file":"pdfConverter.d.ts","sourceRoot":"","sources":["../../src/pdfConverter.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
1
+ {"version":3,"file":"pdfConverter.d.ts","sourceRoot":"","sources":["../../src/pdfConverter.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CA0CjB"}
@@ -1,6 +1,10 @@
1
1
  // Polyfill DOM APIs required by pdfjs-dist in Node.js environment
2
- import { createCanvas } from "canvas";
2
+ import { createCanvas, Canvas } from "canvas";
3
3
  import * as fs from "node:fs/promises";
4
+ // Polyfill Canvas for pdfjs-dist
5
+ if (typeof globalThis !== "undefined") {
6
+ globalThis.Canvas = Canvas;
7
+ }
4
8
  // Lazy load pdfjs-dist
5
9
  let pdfjsLib = null;
6
10
  async function getPdfjsLib() {
@@ -34,10 +38,15 @@ export async function convertPdfPageToImage(pdfPath, pageNumber) {
34
38
  const viewport = page.getViewport({ scale: 1 });
35
39
  const canvas = createCanvas(viewport.width, viewport.height);
36
40
  const context = canvas.getContext("2d");
41
+ // Set white background
42
+ context.fillStyle = "white";
43
+ context.fillRect(0, 0, canvas.width, canvas.height);
37
44
  const renderContext = {
38
45
  canvasContext: context,
39
46
  viewport: viewport,
40
47
  background: "white",
48
+ // Explicitly disable transparency-related operations
49
+ enableWebGL: false,
41
50
  };
42
51
  await page.render(renderContext).promise;
43
52
  return canvas.toBuffer("image/png");
@@ -1 +1 @@
1
- {"version":3,"file":"pdfConverter.js","sourceRoot":"","sources":["../../src/pdfConverter.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,uBAAuB;AACvB,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,aAAa;QACb,QAAQ,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;QAC7B,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,0DAA0D;QAC1D,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;IAE9C,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,QAAQ,SAAS,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAExC,MAAM,aAAa,GAAG;QACpB,aAAa,EAAE,OAAc;QAC7B,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,OAAO;KACpB,CAAC;IAEF,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;IAEzC,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"pdfConverter.js","sourceRoot":"","sources":["../../src/pdfConverter.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,iCAAiC;AACjC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;IACrC,UAAkB,CAAC,MAAM,GAAG,MAAM,CAAC;AACtC,CAAC;AAED,uBAAuB;AACvB,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,aAAa;QACb,QAAQ,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;QAC7B,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,0DAA0D;QAC1D,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;IAE9C,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,QAAQ,SAAS,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAExC,uBAAuB;IACvB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG;QACpB,aAAa,EAAE,OAAc;QAC7B,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,OAAO;QACnB,qDAAqD;QACrD,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;IAEzC,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-to-markdown-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "MCP server that converts PDF pages to markdown using Qwen VL model",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
package/src/index.ts CHANGED
@@ -98,7 +98,7 @@ async function main() {
98
98
 
99
99
  const server = new McpServer({
100
100
  name: "pdf-to-markdown-mcp",
101
- version: "1.0.2",
101
+ version: "1.0.3",
102
102
  });
103
103
 
104
104
  // Register tool
@@ -1,7 +1,12 @@
1
1
  // Polyfill DOM APIs required by pdfjs-dist in Node.js environment
2
- import { createCanvas } from "canvas";
2
+ import { createCanvas, Canvas } from "canvas";
3
3
  import * as fs from "node:fs/promises";
4
4
 
5
+ // Polyfill Canvas for pdfjs-dist
6
+ if (typeof globalThis !== "undefined") {
7
+ (globalThis as any).Canvas = Canvas;
8
+ }
9
+
5
10
  // Lazy load pdfjs-dist
6
11
  let pdfjsLib: any = null;
7
12
  async function getPdfjsLib() {
@@ -47,10 +52,16 @@ export async function convertPdfPageToImage(
47
52
  const canvas = createCanvas(viewport.width, viewport.height);
48
53
  const context = canvas.getContext("2d");
49
54
 
55
+ // Set white background
56
+ context.fillStyle = "white";
57
+ context.fillRect(0, 0, canvas.width, canvas.height);
58
+
50
59
  const renderContext = {
51
60
  canvasContext: context as any,
52
61
  viewport: viewport,
53
62
  background: "white",
63
+ // Explicitly disable transparency-related operations
64
+ enableWebGL: false,
54
65
  };
55
66
 
56
67
  await page.render(renderContext).promise;