Skip to content

Commit 2b26ef4

Browse files
committed
jump by page numbers in pdf
1 parent 9d1a859 commit 2b26ef4

File tree

8 files changed

+54
-31
lines changed

8 files changed

+54
-31
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ dist/
66
out/
77
.env
88
ext.zip
9+
dist.zip

constants.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { generateGuid } = require("./src/services/guid");
22
const constants = {
33
appConfig: {
4-
appName: "Image to Text Pro (OCR)",
4+
appName: "Image to Text (OCR)",
55
urls: {
66
chrome:
77
"https://chrome.google.com/webstore/detail/image-to-text/jgjlejdhmfpimggbicpffmpbnalcnhoo",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "text-to-image-pro",
3-
"version": "2.0.1",
3+
"version": "2.0.2",
44
"description": "",
55
"homepage": "https://fxnoob.github.io/image-to-text-landing",
66
"scripts": {

src/background.js

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,19 @@ import messagePassing from "./services/messagePassing";
55
import constants from "../constants";
66
import db, { schema } from "./services/dbService";
77
import firebaseService from "./services/firebaseService";
8-
import { isGoogleChrome } from "./services/helper";
98
/**
109
* Main extension functionality
1110
*
1211
* @class Main
1312
*/
1413
class Main {
1514
constructor() {
16-
console.log({ isGoogleChrome });
1715
this.ctxMenuId1 = null;
1816
this.ctxMenuId2 = null;
1917
this.ctxMenuId3 = null;
2018
this.init().catch((e) => {
2119
console.log("Error loading extension", { e });
2220
});
23-
// on install listener callback
24-
this.onInstallListener();
2521
// set feedback form url
2622
this.setFeedbackFormUrl();
2723
}
@@ -40,6 +36,7 @@ class Main {
4036
const res = await db.get("___loaded");
4137
if (!res.hasOwnProperty("___loaded")) {
4238
await db.set({ ___loaded: true, ...schema.data });
39+
chromeService.openHelpPage("welcome");
4340
}
4441
};
4542
openCropWindow = async () => {
@@ -114,17 +111,6 @@ class Main {
114111
await db.set({ isAuthenticated: true });
115112
}
116113
};
117-
118-
/**
119-
*On install extension event
120-
* */
121-
onInstallListener = () => {
122-
chrome.runtime.onInstalled.addListener((details) => {
123-
// details.reason for install method
124-
chromeService.openHelpPage("welcome");
125-
});
126-
};
127-
128114
/**
129115
*set feedback form url shown while uninstalling
130116
* */

src/content-scripts/components/index.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default class Index extends React.Component {
1010
super(props);
1111
this.state = {
1212
imgSrc: "",
13-
isModalOpen: false
13+
isModalOpen: false,
1414
};
1515
}
1616
componentDidMount() {
@@ -28,9 +28,10 @@ export default class Index extends React.Component {
2828
});
2929
}
3030
handleClose = () => {
31+
mediaControl.unmutePage();
3132
this.setState({ isModalOpen: false });
3233
};
33-
onCropEnd = imgSrc => {
34+
onCropEnd = (imgSrc) => {
3435
messagePassing.sendMessage("/open_tab", { imgSrc });
3536
this.handleClose();
3637
};

src/option-page/components/App.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ function App() {
2222
"/recognize",
2323
{ url: url },
2424
(response) => {
25-
console.log({ response });
2625
const { status, error, data } = response;
2726
if (url == response.url) {
2827
if (status == "SUCCESS") {
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,25 @@
11
import React from "react";
2+
import Button from "@material-ui/core/Button";
23
import Loader from "./Loader";
34
import ConnectionErrorAnimation from "../../assets/NoInternetConnection";
45

56
export default () => {
6-
return <Loader json={ConnectionErrorAnimation} text="Network Error!" />;
7+
const reload = () => {
8+
window.location.reload();
9+
};
10+
return (
11+
<>
12+
<Loader json={ConnectionErrorAnimation} text="Network Error!" />
13+
<div
14+
style={{
15+
textAlign: "center",
16+
marginTop: "0.5rem",
17+
}}
18+
>
19+
<Button style={{ border: "1px solid" }} onClick={reload}>
20+
Reload
21+
</Button>
22+
</div>
23+
</>
24+
);
725
};

src/option-page/components/Pdf.js

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import React, { useCallback, useRef } from "react";
2+
import ArrowLeftICon from "@material-ui/icons/KeyboardBackspace";
3+
import ArrowRightICon from "@material-ui/icons/ArrowRightAlt";
24
import pdfService from "../../services/pdfService";
35
import { useDropzone } from "react-dropzone";
46
import Share from "./Share";
57
import constants from "../../../constants";
68
import chromeService from "../../services/chromeService";
79
import messagePassing from "../../services/messagePassing";
810
import { getExtensionStoreLink, isGoogleChrome } from "../../services/helper";
11+
import pdf from "../../services/pdfService";
912
const extUrl = getExtensionStoreLink();
1013
let canvas = null;
1114
export default function PdfCard() {
@@ -33,25 +36,23 @@ export default function PdfCard() {
3336
const donateLabel = chromeService.getI18nMessage("donateLabel"); // Donate
3437
const renderPdf = (pdf, num) => {
3538
pdf.getPage(num).then((page) => {
36-
const scale = 0.8;
39+
const scale = 1;
3740
const viewport = page.getViewport({ scale: scale });
3841
canvas = canvasRef.current;
3942
canvas.height = viewport.height;
4043
canvas.width = viewport.width;
4144
const ctx = canvas.getContext("2d");
4245
// Render PDF page into canvas context
43-
var renderContext = {
46+
const renderContext = {
4447
canvasContext: ctx,
4548
viewport: viewport,
4649
};
47-
var renderTask = page.render(renderContext);
50+
const renderTask = page.render(renderContext);
4851
let pageRendering, pageNumPending;
4952
// Wait for rendering to finish
5053
renderTask.promise.then(function () {
5154
pageRendering = false;
5255
if (pageNumPending !== null) {
53-
// New page rendering is pending
54-
renderPage(pageNumPending);
5556
pageNumPending = null;
5657
}
5758
});
@@ -92,6 +93,13 @@ export default function PdfCard() {
9293
setPdfSettings({ ...pdfSettings, currentPage });
9394
renderPdf(pdfSettings.pdf, currentPage);
9495
};
96+
const handlePdfPageChange = (event) => {
97+
const pageNum = parseInt(event.target.value);
98+
if (pageNum > -1 && pageNum <= pdfSettings.pageCount) {
99+
setPdfSettings({ ...pdfSettings, currentPage: pageNum });
100+
renderPdf(pdfSettings.pdf, pageNum);
101+
}
102+
};
95103
const onDrop = useCallback((acceptedFiles) => {
96104
acceptedFiles.forEach((file) => {
97105
const reader = new FileReader();
@@ -107,7 +115,6 @@ export default function PdfCard() {
107115
pageCount: pdf.numPages,
108116
});
109117
renderPdf(pdf, 1);
110-
console.log(pdf.numPages);
111118
});
112119
};
113120
reader.readAsArrayBuffer(file);
@@ -210,18 +217,29 @@ export default function PdfCard() {
210217
onClick={onPrevPage}
211218
className="inline-flex items-center px-4 py-2 border border-transparent text-sm leading-5 font-medium rounded-md text-white focus:outline-none transition duration-150 ease-in-out btn-lite"
212219
>
213-
{"<-"}
220+
<ArrowLeftICon />
214221
</button>
215222
<button
216223
onClick={onNextPage}
217224
style={{ marginLeft: "1rem" }}
218225
className="inline-flex items-center px-4 py-2 border border-transparent text-sm leading-5 font-medium rounded-md text-white focus:outline-none transition duration-150 ease-in-out btn-lite"
219226
>
220-
{"->"}
227+
<ArrowRightICon />
221228
</button>
222229
<span style={{ marginLeft: "1rem" }}>
223-
Page: {pdfSettings.currentPage}/
224-
{pdfSettings.pageCount}
230+
Page:{" "}
231+
<input
232+
type="number"
233+
onChange={handlePdfPageChange}
234+
style={{
235+
width: "4rem",
236+
textAlign: "end",
237+
border: "1px solid var(--main-color)",
238+
borderRadius: "1rem",
239+
}}
240+
value={pdfSettings.currentPage}
241+
/>
242+
/{pdfSettings.pageCount}
225243
</span>
226244
<button
227245
onClick={extractText}

0 commit comments

Comments
 (0)