mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
consistent css class names
This commit is contained in:
parent
857a83fd13
commit
eb0a1ef8a3
@ -141,6 +141,11 @@ endif()
|
|||||||
configure_file (${CMAKE_SOURCE_DIR}/src/pdf2htmlEX-config.h.in ${CMAKE_SOURCE_DIR}/src/pdf2htmlEX-config.h)
|
configure_file (${CMAKE_SOURCE_DIR}/src/pdf2htmlEX-config.h.in ${CMAKE_SOURCE_DIR}/src/pdf2htmlEX-config.h)
|
||||||
configure_file (${CMAKE_SOURCE_DIR}/pdf2htmlEX.1.in ${CMAKE_SOURCE_DIR}/pdf2htmlEX.1)
|
configure_file (${CMAKE_SOURCE_DIR}/pdf2htmlEX.1.in ${CMAKE_SOURCE_DIR}/pdf2htmlEX.1)
|
||||||
|
|
||||||
|
include(${CMAKE_SOURCE_DIR}/src/css_class_names.cmakelists.txt)
|
||||||
|
configure_file (${CMAKE_SOURCE_DIR}/src/util/css_const.h.in ${CMAKE_SOURCE_DIR}/src/util/css_const.h)
|
||||||
|
configure_file (${CMAKE_SOURCE_DIR}/share/base.css.in ${CMAKE_SOURCE_DIR}/share/base.css)
|
||||||
|
configure_file (${CMAKE_SOURCE_DIR}/share/pdf2htmlEX.js.in ${CMAKE_SOURCE_DIR}/share/pdf2htmlEX.js)
|
||||||
|
|
||||||
add_executable(pdf2htmlEX
|
add_executable(pdf2htmlEX
|
||||||
src/Param.h
|
src/Param.h
|
||||||
src/pdf2htmlEX-config.h
|
src/pdf2htmlEX-config.h
|
||||||
@ -167,6 +172,7 @@ add_executable(pdf2htmlEX
|
|||||||
src/util/base64stream.cc
|
src/util/base64stream.cc
|
||||||
src/util/const.h
|
src/util/const.h
|
||||||
src/util/const.cc
|
src/util/const.cc
|
||||||
|
src/util/css_const.h
|
||||||
src/util/encoding.h
|
src/util/encoding.h
|
||||||
src/util/encoding.cc
|
src/util/encoding.cc
|
||||||
src/util/ffw.h
|
src/util/ffw.h
|
||||||
|
@ -77,14 +77,14 @@
|
|||||||
* The followings are base classes, which are meant to be override by PDF specific classes
|
* The followings are base classes, which are meant to be override by PDF specific classes
|
||||||
* So do not increase the specificity (e.g. ".d" -> "#pdf-main .d")
|
* So do not increase the specificity (e.g. ".d" -> "#pdf-main .d")
|
||||||
*/
|
*/
|
||||||
.d { /* page decoration */
|
.@CSS_PAGE_DECORATION_CN@ { /* page decoration */
|
||||||
position:relative;
|
position:relative;
|
||||||
margin: 13px auto;
|
margin: 13px auto;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
box-shadow: 1px 1px 3px 1px #333;
|
box-shadow: 1px 1px 3px 1px #333;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.p { /* page */
|
.@CSS_PAGE_FRAME_CN@ { /* page */
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:0;
|
top:0;
|
||||||
left:0;
|
left:0;
|
||||||
@ -95,7 +95,7 @@
|
|||||||
margin:0;
|
margin:0;
|
||||||
border-width:0; /* required by pdf2htmlEX.js for page visibility test */
|
border-width:0; /* required by pdf2htmlEX.js for page visibility test */
|
||||||
}
|
}
|
||||||
.b { /* content of a page */
|
.@CSS_PAGE_CONTENT_BOX_CN@ { /* content of a page */
|
||||||
position:absolute;
|
position:absolute;
|
||||||
border-width:0;
|
border-width:0;
|
||||||
top:0;
|
top:0;
|
||||||
@ -110,11 +110,11 @@
|
|||||||
-webkit-transform-origin:0% 0%;
|
-webkit-transform-origin:0% 0%;
|
||||||
-o-transform-origin:0% 0%;
|
-o-transform-origin:0% 0%;
|
||||||
}
|
}
|
||||||
.b.opened { /* used by pdf2htmlEX.js, to show/hide pages */
|
.@CSS_PAGE_CONTENT_BOX_CN@.opened { /* used by pdf2htmlEX.js, to show/hide pages */
|
||||||
display:block;
|
display:block;
|
||||||
}
|
}
|
||||||
@media print {
|
@media print {
|
||||||
.d {
|
.@CSS_PAGE_DECORATION_CN@ {
|
||||||
margin:0;
|
margin:0;
|
||||||
box-shadow:none;
|
box-shadow:none;
|
||||||
page-break-after:always;
|
page-break-after:always;
|
||||||
@ -122,15 +122,15 @@
|
|||||||
}
|
}
|
||||||
@-moz-document url-prefix() {
|
@-moz-document url-prefix() {
|
||||||
/* fix page truncation for FireFox */
|
/* fix page truncation for FireFox */
|
||||||
.d {
|
.@CSS_PAGE_DECORATION_CN@ {
|
||||||
overflow:visible;
|
overflow:visible;
|
||||||
border:1px solid #FFFFFF;
|
border:1px solid #FFFFFF;
|
||||||
}
|
}
|
||||||
.p {overflow:visible;}
|
.@CSS_PAGE_FRAME_CN@ {overflow:visible;}
|
||||||
.b {overflow:visible;}
|
.@CSS_PAGE_CONTENT_BOX_CN@ {overflow:visible;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.l { /* text line */
|
.@CSS_LINE_CN@ { /* text line */
|
||||||
position:absolute;
|
position:absolute;
|
||||||
white-space:pre;
|
white-space:pre;
|
||||||
font-size:1px;
|
font-size:1px;
|
||||||
@ -146,7 +146,7 @@ span { /* text blocks within a line */
|
|||||||
/* _<id> for spaces may need display:inline, which will override this */
|
/* _<id> for spaces may need display:inline, which will override this */
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
._ { /* text shift */
|
.@CSS_WHITESPACE_CN@ { /* text shift */
|
||||||
color:transparent;
|
color:transparent;
|
||||||
z-index:-1;
|
z-index:-1;
|
||||||
}
|
}
|
||||||
@ -156,13 +156,13 @@ span { /* text blocks within a line */
|
|||||||
::-moz-selection{
|
::-moz-selection{
|
||||||
background: rgba(127,255,255,1);
|
background: rgba(127,255,255,1);
|
||||||
}
|
}
|
||||||
.j { /* info for Javascript */
|
.@CSS_PAGE_DATA_CN@ { /* info for Javascript */
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
.a { /* annotation links */
|
.@CSS_LINE_CN@ { /* annotation links */
|
||||||
}
|
}
|
||||||
/* transparent color - WebKit */
|
/* transparent color - WebKit */
|
||||||
.Cd { /* css drawing */
|
.@CSS_CSS_DRAW_CN@ { /* css drawing */
|
||||||
position:absolute;
|
position:absolute;
|
||||||
transform-origin:0% 100%;
|
transform-origin:0% 100%;
|
||||||
-ms-transform-origin:0% 100%;
|
-ms-transform-origin:0% 100%;
|
@ -10,6 +10,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var pdf2htmlEX = (function(){
|
var pdf2htmlEX = (function(){
|
||||||
|
var CSS_CLASS_NAMES = {
|
||||||
|
page_frame : '@CSS_PAGE_FRAME_CN@',
|
||||||
|
page_decoration : '@CSS_PAGE_DECORATION_CN@',
|
||||||
|
page_content_box : '@CSS_PAGE_CONTENT_BOX_CN@',
|
||||||
|
page_data : '@CSS_PAGE_DATA_CN@',
|
||||||
|
link : '@CSS_LINE_CN@',
|
||||||
|
__dummy__ : 'no comma'
|
||||||
|
};
|
||||||
|
|
||||||
var pdf2htmlEX = new Object();
|
var pdf2htmlEX = new Object();
|
||||||
|
|
||||||
var EPS = 1e-6;
|
var EPS = 1e-6;
|
||||||
@ -33,7 +42,7 @@ var pdf2htmlEX = (function(){
|
|||||||
|
|
||||||
this.p = $(page);
|
this.p = $(page);
|
||||||
this.n = parseInt(this.p.attr('data-page-no'), 16);
|
this.n = parseInt(this.p.attr('data-page-no'), 16);
|
||||||
this.b = $('.b', this.p);
|
this.b = $('.'+CSS_CLASS_NAMES['page_decoration'], this.p);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* scale ratios
|
* scale ratios
|
||||||
@ -44,7 +53,7 @@ var pdf2htmlEX = (function(){
|
|||||||
*/
|
*/
|
||||||
this.default_r = this.set_r = this.cur_r = this.p.height() / this.b.height();
|
this.default_r = this.set_r = this.cur_r = this.p.height() / this.b.height();
|
||||||
|
|
||||||
this.data = JSON.parse($($('.j', this.p)[0]).attr('data-data'));
|
this.data = JSON.parse($($('.'+CSS_CLASS_NAMES['page_data'], this.p)[0]).attr('data-data'));
|
||||||
|
|
||||||
this.ctm = this.data.ctm;
|
this.ctm = this.data.ctm;
|
||||||
this.ictm = invert(this.ctm);
|
this.ictm = invert(this.ctm);
|
||||||
@ -123,7 +132,7 @@ var pdf2htmlEX = (function(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
var new_pages = new Array();
|
var new_pages = new Array();
|
||||||
var pl= $('.p', this.container);
|
var pl= $('.'+CSS_CLASS_NAMES['page_frame'], this.container);
|
||||||
/* don't use for(..in..) */
|
/* don't use for(..in..) */
|
||||||
for(var i = 0, l = pl.length; i < l; ++i) {
|
for(var i = 0, l = pl.length; i < l; ++i) {
|
||||||
var p = new Page(pl[i], this.container);
|
var p = new Page(pl[i], this.container);
|
||||||
@ -137,15 +146,13 @@ var pdf2htmlEX = (function(){
|
|||||||
//this.zoom_fixer();
|
//this.zoom_fixer();
|
||||||
|
|
||||||
// used by outline/annot_link etc
|
// used by outline/annot_link etc
|
||||||
// note that one is for the class 'a' and the other is for the tag 'a'
|
$([this.container, this.outline]).on('click', '.'+CSS_CLASS_NAMES['link'], this, this.link_handler);
|
||||||
this.container.on('click', '.a', this, this.link_handler);
|
|
||||||
this.outline.on('click', 'a', this, this.link_handler);
|
|
||||||
|
|
||||||
this.render();
|
this.render();
|
||||||
},
|
},
|
||||||
pre_hide_pages : function() {
|
pre_hide_pages : function() {
|
||||||
/* pages might have not been loaded yet, so add a CSS rule */
|
/* pages might have not been loaded yet, so add a CSS rule */
|
||||||
var s = '@media screen{.b{display:none;}}';
|
var s = '@media screen{.'+CSS_CLASS_NAMES['page_content_box']+'{display:none;}}';
|
||||||
var n = document.createElement('style');
|
var n = document.createElement('style');
|
||||||
n.type = 'text/css';
|
n.type = 'text/css';
|
||||||
if (n.styleSheet) {
|
if (n.styleSheet) {
|
||||||
@ -236,7 +243,7 @@ var pdf2htmlEX = (function(){
|
|||||||
|
|
||||||
get_containing_page : function(obj) {
|
get_containing_page : function(obj) {
|
||||||
/* get the page obj containing obj */
|
/* get the page obj containing obj */
|
||||||
var p = obj.closest('.p')[0];
|
var p = obj.closest('.'+CSS_CLASS_NAMES['page_frame'])[0];
|
||||||
return p && this.pages[(new Page(p)).n];
|
return p && this.pages[(new Page(p)).n];
|
||||||
},
|
},
|
||||||
|
|
@ -13,7 +13,7 @@
|
|||||||
#include "util/namespace.h"
|
#include "util/namespace.h"
|
||||||
#include "util/unicode.h"
|
#include "util/unicode.h"
|
||||||
#include "util/math.h"
|
#include "util/math.h"
|
||||||
#include "util/CSSClassNames.h"
|
#include "util/css_const.h"
|
||||||
#include "util/encoding.h"
|
#include "util/encoding.h"
|
||||||
|
|
||||||
namespace pdf2htmlEX {
|
namespace pdf2htmlEX {
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
#include "util/base64stream.h"
|
#include "util/base64stream.h"
|
||||||
#include "util/math.h"
|
#include "util/math.h"
|
||||||
#include "util/path.h"
|
#include "util/path.h"
|
||||||
#include "util/CSSClassNames.h"
|
#include "util/css_const.h"
|
||||||
|
|
||||||
namespace pdf2htmlEX {
|
namespace pdf2htmlEX {
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "HTMLRenderer.h"
|
#include "HTMLRenderer.h"
|
||||||
#include "util/namespace.h"
|
#include "util/namespace.h"
|
||||||
#include "util/encoding.h"
|
#include "util/encoding.h"
|
||||||
|
#include "util/css_const.h"
|
||||||
|
|
||||||
namespace pdf2htmlEX {
|
namespace pdf2htmlEX {
|
||||||
|
|
||||||
@ -35,7 +36,7 @@ void HTMLRenderer::process_outline_items(GooList * items)
|
|||||||
string dest = get_linkaction_str(item->getAction(), detail);
|
string dest = get_linkaction_str(item->getAction(), detail);
|
||||||
|
|
||||||
// we don't care dest is empty or not.
|
// we don't care dest is empty or not.
|
||||||
f_outline.fs << "<li>" << "<a href=\"";
|
f_outline.fs << "<li>" << "<a class=\"" << CSS::LINK_CN << "\" href=\"";
|
||||||
outputURL(f_outline.fs, dest);
|
outputURL(f_outline.fs, dest);
|
||||||
f_outline.fs << "\"";
|
f_outline.fs << "\"";
|
||||||
|
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* CSSClassNames.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2013 Lu Wang <coolwanglu@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CSSCLASSNAMES_H__
|
|
||||||
#define CSSCLASSNAMES_H__
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* should be consistent with base.css and pdf2htmlEX.js
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace pdf2htmlEX {
|
|
||||||
namespace CSS {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// usually the class name is XXX_CN or XXX_CN<hex id>
|
|
||||||
// sometimes we need a special one, e.g. transparent color, where the id is -1
|
|
||||||
const char * const INVALID_ID = "_";
|
|
||||||
// work around strings
|
|
||||||
// TODO: since we have this string, should this file be named as general "css.h" ?
|
|
||||||
const char * const WEBKIT_ONLY = "@media screen and (-webkit-min-device-pixel-ratio:0)";
|
|
||||||
const char * const PRINT_ONLY = "@media print";
|
|
||||||
|
|
||||||
|
|
||||||
// TODO: better names, remove collission (i.e LINE_CN vs LETTER_SPACE_CN)
|
|
||||||
const char * const LINE_CN = "l";
|
|
||||||
const char * const TRANSFORM_MATRIX_CN = "t";
|
|
||||||
|
|
||||||
// page_decoration is for shadow etc
|
|
||||||
// page_frame cannot have margin or border-width, pdf2htmlEX.js will use it to determine the coordinates
|
|
||||||
// page_content holds everything inside the page, could be hidden to speed up rendering
|
|
||||||
// page_data holds data for pdf2htmlEX.js
|
|
||||||
const char * const PAGE_DECORATION_CN = "d";
|
|
||||||
const char * const PAGE_FRAME_CN = "p";
|
|
||||||
const char * const PAGE_CONTENT_BOX_CN = "b";
|
|
||||||
const char * const PAGE_DATA_CN = "j";
|
|
||||||
|
|
||||||
const char * const FONT_NAME_CN = "f";
|
|
||||||
const char * const FONT_SIZE_CN = "s";
|
|
||||||
const char * const FILL_COLOR_CN = "c";
|
|
||||||
const char * const STROKE_COLOR_CN = "C";
|
|
||||||
const char * const LETTER_SPACE_CN = "l";
|
|
||||||
const char * const WORD_SPACE_CN = "w";
|
|
||||||
const char * const RISE_CN = "r";
|
|
||||||
const char * const WHITESPACE_CN = "_";
|
|
||||||
const char * const LEFT_CN = "L";
|
|
||||||
const char * const HEIGHT_CN = "h";
|
|
||||||
const char * const WIDTH_CN = "W";
|
|
||||||
const char * const BOTTOM_CN = "B";
|
|
||||||
|
|
||||||
const char * const CSS_DRAW_CN = "Cd";
|
|
||||||
const char * const LINK_CN = "a";
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif //CSSCLASSNAMES_H__
|
|
@ -14,7 +14,7 @@
|
|||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
#include "util/math.h"
|
#include "util/math.h"
|
||||||
#include "util/CSSClassNames.h"
|
#include "util/css_const.h"
|
||||||
|
|
||||||
namespace pdf2htmlEX {
|
namespace pdf2htmlEX {
|
||||||
|
|
||||||
|
58
src/util/css_const.h.in
Normal file
58
src/util/css_const.h.in
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* css_const.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2013 Lu Wang <coolwanglu@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CSS_CONST_H__
|
||||||
|
#define CSS_CONST_H__
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* should be consistent with base.css and pdf2htmlEX.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace pdf2htmlEX {
|
||||||
|
namespace CSS {
|
||||||
|
|
||||||
|
// work around strings
|
||||||
|
const char * const WEBKIT_ONLY = "@media screen and (-webkit-min-device-pixel-ratio:0)";
|
||||||
|
const char * const PRINT_ONLY = "@media print";
|
||||||
|
|
||||||
|
// usually the class name is XXX_CN or XXX_CN<hex id>
|
||||||
|
// sometimes we need a special one, e.g. transparent color, where the id is -1
|
||||||
|
const char * const INVALID_ID = "@CSS_INVALID_ID";
|
||||||
|
|
||||||
|
const char * const LINE_CN = "@CSS_LINE_CN@";
|
||||||
|
const char * const TRANSFORM_MATRIX_CN = "@CSS_TRANSFORM_MATRIX_CN@";
|
||||||
|
|
||||||
|
// page_decoration is for shadow etc
|
||||||
|
// page_frame cannot have margin or border-width, pdf2htmlEX.js will use it to determine the coordinates
|
||||||
|
// page_content holds everything inside the page, could be hidden to speed up rendering
|
||||||
|
// page_data holds data for pdf2htmlEX.js
|
||||||
|
const char * const PAGE_DECORATION_CN = "@CSS_PAGE_DECORATION_CN@";
|
||||||
|
const char * const PAGE_FRAME_CN = "@CSS_PAGE_FRAME_CN@";
|
||||||
|
const char * const PAGE_CONTENT_BOX_CN = "@CSS_PAGE_CONTENT_BOX_CN@";
|
||||||
|
const char * const PAGE_DATA_CN = "@CSS_PAGE_DATA_CN@";
|
||||||
|
|
||||||
|
const char * const FONT_NAME_CN = "@CSS_FONT_NAME_CN@";
|
||||||
|
const char * const FONT_SIZE_CN = "@CSS_FONT_SIZE_CN@";
|
||||||
|
const char * const FILL_COLOR_CN = "@CSS_FILL_COLOR_CN@";
|
||||||
|
const char * const STROKE_COLOR_CN = "@CSS_STROKE_COLOR_CN@";
|
||||||
|
const char * const LETTER_SPACE_CN = "@CSS_LETTER_SPACE_CN@";
|
||||||
|
const char * const WORD_SPACE_CN = "@CSS_WORD_SPACE_CN@";
|
||||||
|
const char * const RISE_CN = "@CSS_RISE_CN@";
|
||||||
|
const char * const WHITESPACE_CN = "@CSS_WHITESPACE_CN@";
|
||||||
|
const char * const LEFT_CN = "@CSS_LEFT_CN@";
|
||||||
|
const char * const HEIGHT_CN = "@CSS_HEIGHT_CN@";
|
||||||
|
const char * const WIDTH_CN = "@CSS_WIDTH_CN@";
|
||||||
|
const char * const BOTTOM_CN = "@CSS_BOTTTOM_CN@";
|
||||||
|
|
||||||
|
const char * const CSS_DRAW_CN = "@CSS_CSS_DRAW_CN@";
|
||||||
|
const char * const LINK_CN = "@CSS_LINE_CN@";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif //CSS_CONST_H__
|
Loading…
Reference in New Issue
Block a user