mirror of
https://github.com/jzillmann/pdf-to-markdown.git
synced 2024-11-21 23:33:31 +01:00
Upgrade pdfjs from 1.7.246 to 2.0.489
* Required web pack 2+ => updated to 3 * Add web pack-dev-server to be able to test worker.js stuff
This commit is contained in:
parent
b1bcb5388d
commit
2869b5e5de
8
.babelrc
8
.babelrc
@ -1,4 +1,8 @@
|
|||||||
{
|
{
|
||||||
"presets": ["es2015", "stage-0"],
|
"env": {
|
||||||
"plugins": ["transform-runtime"]
|
"testing": {
|
||||||
|
"presets": ["es2015"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presets": [ ["es2015", { "loose": false, "modules": false}], "react", "stage-0", "stage-2"]
|
||||||
}
|
}
|
@ -16,6 +16,8 @@ Use the [issue tracker](https://github.com/jzillmann/pdf-to-markdown/issues) and
|
|||||||
- ```npm run lint``` Lint the javascript files
|
- ```npm run lint``` Lint the javascript files
|
||||||
- ```npm run test``` Run tests
|
- ```npm run test``` Run tests
|
||||||
- ```npm run check``` Lint & Test
|
- ```npm run check``` Lint & Test
|
||||||
|
- ```npm run build``` Build the dev version
|
||||||
|
- ```npm run start``` Run the app on an server (useful for loading of worker.js and cmaps)
|
||||||
- ```npm run watch``` Continuously build the project
|
- ```npm run watch``` Continuously build the project
|
||||||
- ```open build/index.html``` Open the build project in your default browser
|
- ```open build/index.html``` Open the build project in your default browser
|
||||||
- ```npm run release``` Build production version
|
- ```npm run release``` Build production version
|
||||||
|
12871
package-lock.json
generated
Normal file
12871
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
@ -6,8 +6,9 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"watch": "webpack -d --watch",
|
"watch": "webpack -d --watch",
|
||||||
"build": "webpack",
|
"build": "webpack",
|
||||||
|
"start": "webpack-dev-server",
|
||||||
"lint": "eslint src --ext .js --ext .jsx --cache",
|
"lint": "eslint src --ext .js --ext .jsx --cache",
|
||||||
"test": "mocha --compilers js:babel-core/register test --recursive",
|
"test": "NODE_ENV=testing mocha --compilers js:babel-core/register test --recursive",
|
||||||
"check": "npm run lint && npm run test",
|
"check": "npm run lint && npm run test",
|
||||||
"release": "npm run lint && rm -rf build/* && NODE_ENV=production webpack -p",
|
"release": "npm run lint && rm -rf build/* && NODE_ENV=production webpack -p",
|
||||||
"deploy": "npm run release && cp -r build/* docs/"
|
"deploy": "npm run release && cp -r build/* docs/"
|
||||||
@ -26,7 +27,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "^3.3.7",
|
"bootstrap": "^3.3.7",
|
||||||
"enumify": "^1.0.4",
|
"enumify": "^1.0.4",
|
||||||
"pdfjs-dist": "^1.7.246",
|
"pdfjs-dist": "^2.0.489",
|
||||||
"rc-progress": "^2.0.6",
|
"rc-progress": "^2.0.6",
|
||||||
"react": "^15.4.2",
|
"react": "^15.4.2",
|
||||||
"react-bootstrap": "^0.30.7",
|
"react-bootstrap": "^0.30.7",
|
||||||
@ -39,11 +40,12 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-core": "^6.22.1",
|
"babel-core": "^6.22.1",
|
||||||
"babel-eslint": "^7.1.1",
|
"babel-eslint": "^7.1.1",
|
||||||
"babel-loader": "^6.2.10",
|
"babel-loader": "^7.1.1",
|
||||||
"babel-plugin-transform-runtime": "^6.22.0",
|
"babel-plugin-transform-runtime": "^6.22.0",
|
||||||
"babel-preset-es2015": "^6.22.0",
|
"babel-preset-es2015": "^6.22.0",
|
||||||
"babel-preset-react": "^6.22.0",
|
"babel-preset-react": "^6.22.0",
|
||||||
"babel-preset-stage-0": "^6.22.0",
|
"babel-preset-stage-0": "^6.22.0",
|
||||||
|
"babel-preset-stage-2": "^6.24.1",
|
||||||
"chai": "^3.5.0",
|
"chai": "^3.5.0",
|
||||||
"copy-webpack-plugin": "^4.0.1",
|
"copy-webpack-plugin": "^4.0.1",
|
||||||
"css-loader": "^0.26.1",
|
"css-loader": "^0.26.1",
|
||||||
@ -51,12 +53,14 @@
|
|||||||
"eslint": "^3.15.0",
|
"eslint": "^3.15.0",
|
||||||
"eslint-plugin-jasmine": "^2.2.0",
|
"eslint-plugin-jasmine": "^2.2.0",
|
||||||
"eslint-plugin-react": "^6.9.0",
|
"eslint-plugin-react": "^6.9.0",
|
||||||
"extract-text-webpack-plugin": "^1.0.1",
|
"extract-text-webpack-plugin": "^3.0.2",
|
||||||
"file-loader": "^0.10.0",
|
"file-loader": "^0.10.0",
|
||||||
"html-webpack-plugin": "^2.28.0",
|
"html-webpack-plugin": "^2.22.0",
|
||||||
"mocha": "^3.2.0",
|
"mocha": "^3.2.0",
|
||||||
"style-loader": "^0.13.1",
|
"style-loader": "^0.13.1",
|
||||||
"url-loader": "^0.5.7",
|
"url-loader": "^0.5.7",
|
||||||
"webpack": "^1.14.0"
|
"webpack": "^3.11.0",
|
||||||
|
"webpack-cli": "^2.0.15",
|
||||||
|
"webpack-dev-server": "^2.11.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ import Metadata from '../models/Metadata.jsx';
|
|||||||
import Page from '../models/Page.jsx';
|
import Page from '../models/Page.jsx';
|
||||||
import TextItem from '../models/TextItem.jsx';
|
import TextItem from '../models/TextItem.jsx';
|
||||||
|
|
||||||
|
pdfjs.GlobalWorkerOptions.workerSrc = 'bundle.worker.js';
|
||||||
|
|
||||||
// Parses the PDF pages and displays progress
|
// Parses the PDF pages and displays progress
|
||||||
export default class LoadingView extends React.Component {
|
export default class LoadingView extends React.Component {
|
||||||
|
|
||||||
@ -101,7 +103,11 @@ export default class LoadingView extends React.Component {
|
|||||||
const self = this;
|
const self = this;
|
||||||
const fontStage = this.state.progress.fontStage();
|
const fontStage = this.state.progress.fontStage();
|
||||||
|
|
||||||
PDFJS.getDocument(this.props.fileBuffer).then(function(pdfDocument) { // eslint-disable-line no-undef
|
pdfjs.getDocument({
|
||||||
|
data: this.props.fileBuffer,
|
||||||
|
cMapUrl: 'cmaps/',
|
||||||
|
cMapPacked: true
|
||||||
|
}).then(function(pdfDocument) { // eslint-disable-line no-undef
|
||||||
// console.debug(pdfDocument);
|
// console.debug(pdfDocument);
|
||||||
pdfDocument.getMetadata().then(function(metadata) {
|
pdfDocument.getMetadata().then(function(metadata) {
|
||||||
// console.debug(metadata);
|
// console.debug(metadata);
|
||||||
@ -127,7 +133,7 @@ export default class LoadingView extends React.Component {
|
|||||||
fontStage.steps = self.state.fontIds.size;
|
fontStage.steps = self.state.fontIds.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tx = PDFJS.Util.transform( // eslint-disable-line no-undef
|
const tx = pdfjs.Util.transform( // eslint-disable-line no-undef
|
||||||
viewport.transform,
|
viewport.transform,
|
||||||
item.transform
|
item.transform
|
||||||
);
|
);
|
||||||
|
@ -26,7 +26,7 @@ export default class UploadView extends React.Component {
|
|||||||
const uploadFunction = this.state.uploadPdfFunction;
|
const uploadFunction = this.state.uploadPdfFunction;
|
||||||
reader.onload = (evt) => {
|
reader.onload = (evt) => {
|
||||||
const fileBuffer = evt.target.result;
|
const fileBuffer = evt.target.result;
|
||||||
uploadFunction(fileBuffer);
|
uploadFunction(new Uint8Array(fileBuffer));
|
||||||
};
|
};
|
||||||
reader.readAsArrayBuffer(files[0]);
|
reader.readAsArrayBuffer(files[0]);
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export default class AppState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// the uploaded pdf as file buffer
|
// the uploaded pdf as file buffer
|
||||||
storeFileBuffer(fileBuffer:ArrayBuffer) {
|
storeFileBuffer(fileBuffer:Uint8Array) {
|
||||||
this.fileBuffer = fileBuffer;
|
this.fileBuffer = fileBuffer;
|
||||||
this.mainView = View.LOADING;
|
this.mainView = View.LOADING;
|
||||||
this.render()
|
this.render()
|
||||||
|
@ -4,42 +4,32 @@ var HtmlWebpackPlugin = require('html-webpack-plugin');
|
|||||||
var CopyWebpackPlugin = require('copy-webpack-plugin');
|
var CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||||
|
|
||||||
var SOURCE_DIR = path.resolve(__dirname, 'src');
|
var SOURCE_DIR = path.resolve(__dirname, 'src');
|
||||||
|
var JAVASCRIPT_DIR = SOURCE_DIR + '/javascript';
|
||||||
var BUILD_DIR = path.resolve(__dirname, 'build');
|
var BUILD_DIR = path.resolve(__dirname, 'build');
|
||||||
var NODEMODULES_DIR = path.resolve(__dirname, 'node_modules');
|
var NODEMODULES_DIR = path.resolve(__dirname, 'node_modules');
|
||||||
var JAVASCRIPT_DIR = SOURCE_DIR + '/javascript';
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
entry: JAVASCRIPT_DIR + '/index.jsx',
|
context: SOURCE_DIR,
|
||||||
|
resolve: {
|
||||||
|
modules: [
|
||||||
|
path.resolve(JAVASCRIPT_DIR),
|
||||||
|
path.resolve('./node_modules')
|
||||||
|
]
|
||||||
|
},
|
||||||
|
entry: {
|
||||||
|
app: './javascript/index.jsx'
|
||||||
|
},
|
||||||
output: {
|
output: {
|
||||||
path: BUILD_DIR,
|
path: BUILD_DIR,
|
||||||
filename: 'bundle.js'
|
filename: 'bundle.js'
|
||||||
},
|
},
|
||||||
resolve: {
|
|
||||||
extensions: ['', '.js'],
|
|
||||||
fallback: [path.join(__dirname, '../node_modules')],
|
|
||||||
alias: {
|
|
||||||
'src': path.resolve(__dirname, '../src'),
|
|
||||||
'assets': path.resolve(__dirname, '../src/assets'),
|
|
||||||
'components': path.resolve(__dirname, '../src/components')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
resolveLoader: {
|
|
||||||
fallback: [path.join(__dirname, '../node_modules')]
|
|
||||||
},
|
|
||||||
module: {
|
module: {
|
||||||
// Special compilation rules
|
rules: [
|
||||||
loaders: [
|
|
||||||
{
|
{
|
||||||
// Ask webpack to check: If this file ends with .js, then apply some transforms
|
// Ask webpack to check: If this file ends with .js, then apply some transforms
|
||||||
test: /\.jsx?$/,
|
test: /\.jsx?$/,
|
||||||
// Transform it with babel
|
loader: 'babel-loader',
|
||||||
loader: 'babel',
|
|
||||||
// don't transform node_modules folder (which don't need to be compiled)
|
|
||||||
include: [JAVASCRIPT_DIR],
|
include: [JAVASCRIPT_DIR],
|
||||||
query: {
|
|
||||||
plugins: ['transform-runtime'],
|
|
||||||
presets: ['es2015', 'stage-0', 'react'],
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
@ -55,25 +45,25 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
|
test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
|
||||||
loader: 'url?limit=10000&mimetype=application/font-woff'
|
loader: 'url-loader?limit=10000&mimetype=application/font-woff'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
|
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
|
||||||
loader: 'url?limit=10000&mimetype=application/octet-stream'
|
loader: 'url-loader?limit=10000&mimetype=application/octet-stream'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
|
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
|
||||||
loader: 'file'
|
loader: 'file-loader'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
|
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
|
||||||
loader: 'url?limit=10000&mimetype=image/svg+xml'
|
loader: 'url-loader?limit=10000&mimetype=image/svg+xml'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
template: SOURCE_DIR + '/index.html'
|
template: 'index.html'
|
||||||
}),
|
}),
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
'process.env': {
|
'process.env': {
|
||||||
@ -89,7 +79,13 @@ module.exports = {
|
|||||||
]),
|
]),
|
||||||
new CopyWebpackPlugin([
|
new CopyWebpackPlugin([
|
||||||
{
|
{
|
||||||
from: SOURCE_DIR + '/favicons',
|
from: NODEMODULES_DIR + '/pdfjs-dist/cmaps',
|
||||||
|
to: 'cmaps'
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
new CopyWebpackPlugin([
|
||||||
|
{
|
||||||
|
from: 'favicons',
|
||||||
to: 'favicons'
|
to: 'favicons'
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
Loading…
Reference in New Issue
Block a user