Add some functions to tear first pages from a PDF
This commit is contained in:
parent
ba564be738
commit
4a89c8c136
45
libbmc/papers/tearpages.py
Normal file
45
libbmc/papers/tearpages.py
Normal file
@ -0,0 +1,45 @@
|
||||
"""
|
||||
This file contains the necessary functions to determine whether we should tear
|
||||
the first page from a PDF file, and actually tear it.
|
||||
"""
|
||||
import tearpages
|
||||
|
||||
|
||||
# List of bad publishers which adds an extra useless first page, which can be
|
||||
# teared. Please, submit a PR to include new ones which I may not be aware of!
|
||||
BAD_PUBLISHERS = [
|
||||
"IOP"
|
||||
]
|
||||
|
||||
|
||||
def tearpage_needed(bibtex):
|
||||
"""
|
||||
Check whether a given paper needs the first page to be teared or not.
|
||||
|
||||
:params bibtex: The bibtex entry associated to the paper, to guess \
|
||||
whether tearing is needed.
|
||||
:returns: A boolean indicating whether first page should be teared or not.
|
||||
"""
|
||||
# For each bad publisher, look for it in the publisher bibtex entry
|
||||
has_bad_publisher = [p in bibtex.get("publisher", [])
|
||||
for p in BAD_PUBLISHERS]
|
||||
# Return True iff there is at least one bad publisher
|
||||
return (True in has_bad_publisher)
|
||||
|
||||
|
||||
def tearpage(filename, bibtex=None):
|
||||
"""
|
||||
Tear the first page of the file if needed.
|
||||
|
||||
:params filename: Path to the file to handle.
|
||||
:params bibtex: BibTeX dict associated to this file, as the one given by \
|
||||
``bibtexparser``.
|
||||
:returns: A boolean indicating whether the file has been teared or not. \
|
||||
Side effect is tearing the first page from the file.
|
||||
"""
|
||||
if bibtex is not None and tearpage_needed(bibtex):
|
||||
# If tearing is needed, do it and return True
|
||||
tearpages.tearpage(filename)
|
||||
return True
|
||||
# Else, simply return False
|
||||
return False
|
Loading…
Reference in New Issue
Block a user