#! /usr/bin/perl -w # # Copyright (c) 2010 LCD 47 # All rights reserved. # # $Revision: 1.4 $ # $Id: cbo_clean.pl,v 1.4 2011/03/15 12:20:23 lcd047 Exp $ # $Source: /usr/share/CVS/Scripts/scripts/cambridge/cbo_clean.pl,v $ # use strict; sub clean { my $refobj = shift; $$refobj =~ s/^Q\n.*/Q\n\nendstream\nendobj\n/mso if ($$refobj =~ m/\/TT0 1 Tf \d+ Tr [\d.]+ [\d.]+ [\d.]+ [\d.]+ [\d.]+ [\d.]+ Tm \(Cambridge \) Tj/mo or $$refobj =~ m/Downloaded from (?:Cambridge Books Online|http:\/\/ebooks\.cambridge\.org) by IP/mo); return ($$refobj !~ m/\/Watermark| \(Watermark\) |\bWatermarkSettings\b/mo); } my ($in_obj, $obj); binmode STDIN; binmode STDOUT; $in_obj = 0; while (<>) { if ($in_obj) { $obj .= $_; if (m/^endobj\b/o) { print $obj if (clean \$obj); undef $obj; $in_obj = 0; } } else { if (m/^\d+\s+\d+\s+obj\b/o) { $obj = $_; $in_obj = 1; } else { print; } } }