Skip to content

Instantly share code, notes, and snippets.

View tiarno's full-sized avatar

Tim Arnold tiarno

View GitHub Profile
@tiarno
tiarno / gist:8a2995e70cee42f01e79
Last active February 2, 2024 22:15
find PDF font info with PyPDF2, example code
from PyPDF2 import PdfFileReader
from pprint import pprint
def walk(obj, fnt, emb):
'''
If there is a key called 'BaseFont', that is a font that is used in the document.
If there is a key called 'FontName' and another key in the same dictionary object
that is called 'FontFilex' (where x is null, 2, or 3), then that fontname is
embedded.
@tiarno
tiarno / iframe_vis.js
Last active January 29, 2020 08:41
javascript: is element inside an iframe visible within the viewport?
// Given an iframe id and an anchor id that is present within the iframe,
// determine whether the element is visible/present inside the window viewport.
// This is not about the css 'display' property; this shows whether
// the window viewport contains the element.
var isVisible = function (anchor, iframe_id) {
var ifrId = iframe_id || 'bv_page';
var ifrOffset = window.parent.document.getElementById(ifrId).offsetTop;
var myloc = document.getElementById(anchor).offsetTop + ifrOffset;
var viewtop = window.parent.scrollY;
@tiarno
tiarno / wk_toc.xsl
Created April 30, 2019 12:16
XSL for Creating an Appendix with wkhtmltopdf
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:outline="http://wkhtmltopdf.org/outline"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes" />
<xsl:template match="outline:outline">
<html>
@tiarno
tiarno / PDF-Testing.md
Last active February 17, 2017 13:33
PDF Checking

PDF Testing Gist

These two files, pdf_linkchecker.py and pdf_fontchecker.py are code examples to go along with a blog article: http://reachtim.com/articles/PDF-Testing.html

See the article for details on how to test your PDFs for broken internal and external links and for unembedded fonts.

@tiarno
tiarno / enable-local-fonts
Last active January 19, 2016 23:00 — forked from mpg/enable-local-fonts
Enable fonts from texmf-local using updmap-sys --enable Map
#!/bin/sh
# Enable fonts from texmf-local using updmap-sys --enable Map
#
# Manuel Pégourié-Gonnard, 2010; WTFPL v2.
find -H `kpsewhich --var-value TEXMFLOCAL` -name '*.map' | while read file
do
updmap-sys --nohash --nomkmap --enable Map `basename $file`
done
@tiarno
tiarno / phantomjs_mathjax.
Created August 21, 2013 14:07
phantomjs testing script to evaluate a page, wait for a response from MathJax, and close the page. Use in conjunction with mathjax_test.js script; all this does is load the page so any errors flagged from the mathjax_test code is posted to the error database. the two scripts need each other in order to test the file. This script expects a single…
var url = require('system').args[1];
var page = require('webpage').create();
function waitFor(testFn, onSuccessFn, timeOut) {
var start = new Date().getTime();
var condition = false;
var interval = setInterval(function() {
if ( (new Date().getTime() - start < timeOut) && !condition ) {
condition = testFn();
} else {
@tiarno
tiarno / mathjax_test.js
Created July 30, 2013 19:54
MathJax testing for TeX and rendering errors. Create HTML page (with math) to include the MathJax library and then include this file. When the page is loaded, the js console will show when errors are encountered and the data about the error will be POSTed via ajax to a rest-type service named here as 'service/mathmltest'. That service should acc…
function ajaxRequest(){
return new XMLHttpRequest(async=false);
}
function mltest (){
var filename = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
MathJax.Hub.Config({TeX: {noUndefined: {disabled: true}}});
MathJax.Hub.Queue(function() {console.log('finished rendering');});
MathJax.Hub.Register.MessageHook("TeX Jax - parse error",function (message) {
console.log('error encountered');
var mydata = {};
@tiarno
tiarno / mathjax_error_flags.html
Last active December 20, 2015 05:39
JavaScript/MathJax method to flag for errors on a page containing TeX math: Flags for either TeX errors (undefined control sequence) or Math errors (for example, missing brace). Code stolen from a couple of threads on MathJax Users Google Group: https://groups.google.com/forum/#!msg/mathjax-users/ct4drdifuyI/h61GSTt_-bAJ https://groups.google.co…
<!DOCTYPE html>
<html>
<head>
<title>Encapsulate Trapping of Math and TeX errors</title>
<script type="text/x-mathjax-config">
// Turn off NoErrors extension
MathJax.Hub.Config({
TeX: {noErrors: {disabled: true}}
});
// Set flag function for TeX Errors (undefined cs)
@tiarno
tiarno / node_cluster.js
Created February 18, 2015 21:09
NodeJS server receives LaTeX, returns SVG
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var createServer = function(port) {
var mjAPI = require("node_modules/MathJax-node/lib/mj-single");
mjAPI.config({
MathJax: {
SVG: {
font: "STIX-Web"