All pastes #2065909 Raw Edit

cbo_clean.pl

public text v1 · immutable
#2065909 ·published 2011-05-20 17:13 UTC
rendered paste body
#! /usr/bin/perl -w
#
# Copyright (c) 2010 LCD 47 <lcd047@gmail.com>
# 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; }
  }
}