hexapdf 0.20.3 → 0.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +42 -1
 - data/README.md +5 -3
 - data/Rakefile +10 -1
 - data/examples/018-composer.rb +10 -10
 - data/examples/020-column_box.rb +57 -0
 - data/lib/hexapdf/cli/batch.rb +4 -6
 - data/lib/hexapdf/cli/info.rb +5 -1
 - data/lib/hexapdf/cli/inspect.rb +59 -0
 - data/lib/hexapdf/cli/split.rb +1 -1
 - data/lib/hexapdf/composer.rb +147 -53
 - data/lib/hexapdf/configuration.rb +7 -3
 - data/lib/hexapdf/content/canvas.rb +1 -1
 - data/lib/hexapdf/content/color_space.rb +1 -1
 - data/lib/hexapdf/content/operator.rb +7 -7
 - data/lib/hexapdf/content/parser.rb +3 -3
 - data/lib/hexapdf/content/processor.rb +9 -9
 - data/lib/hexapdf/document/signatures.rb +5 -4
 - data/lib/hexapdf/document.rb +7 -0
 - data/lib/hexapdf/encryption/aes.rb +9 -5
 - data/lib/hexapdf/font/true_type/font.rb +7 -7
 - data/lib/hexapdf/font/true_type/optimizer.rb +1 -1
 - data/lib/hexapdf/font/true_type/subsetter.rb +1 -1
 - data/lib/hexapdf/font/true_type/table/cmap_subtable.rb +3 -3
 - data/lib/hexapdf/font/true_type_wrapper.rb +9 -14
 - data/lib/hexapdf/font/type1/font.rb +10 -12
 - data/lib/hexapdf/font/type1_wrapper.rb +15 -17
 - data/lib/hexapdf/layout/box.rb +12 -9
 - data/lib/hexapdf/layout/column_box.rb +168 -0
 - data/lib/hexapdf/layout/image_box.rb +1 -1
 - data/lib/hexapdf/layout/style.rb +28 -8
 - data/lib/hexapdf/layout/text_fragment.rb +10 -9
 - data/lib/hexapdf/parser.rb +5 -0
 - data/lib/hexapdf/tokenizer.rb +3 -3
 - data/lib/hexapdf/type/acro_form/appearance_generator.rb +6 -4
 - data/lib/hexapdf/type/acro_form/choice_field.rb +2 -2
 - data/lib/hexapdf/type/acro_form/field.rb +2 -2
 - data/lib/hexapdf/type/font_type0.rb +1 -1
 - data/lib/hexapdf/type/font_type3.rb +1 -1
 - data/lib/hexapdf/type/resources.rb +4 -4
 - data/lib/hexapdf/type/signature/adbe_pkcs7_detached.rb +1 -1
 - data/lib/hexapdf/type/signature.rb +1 -1
 - data/lib/hexapdf/type/trailer.rb +3 -3
 - data/lib/hexapdf/version.rb +1 -1
 - data/lib/hexapdf/xref_section.rb +1 -1
 - data/test/hexapdf/common_tokenizer_tests.rb +5 -5
 - data/test/hexapdf/content/test_graphics_state.rb +1 -0
 - data/test/hexapdf/content/test_operator.rb +2 -2
 - data/test/hexapdf/content/test_processor.rb +1 -1
 - data/test/hexapdf/encryption/test_aes.rb +8 -0
 - data/test/hexapdf/encryption/test_standard_security_handler.rb +23 -29
 - data/test/hexapdf/filter/test_predictor.rb +16 -20
 - data/test/hexapdf/font/test_type1_wrapper.rb +5 -1
 - data/test/hexapdf/font/true_type/table/common.rb +1 -1
 - data/test/hexapdf/font/true_type/table/test_cmap.rb +1 -1
 - data/test/hexapdf/font/true_type/table/test_cmap_subtable.rb +1 -1
 - data/test/hexapdf/image_loader/test_pdf.rb +6 -8
 - data/test/hexapdf/image_loader/test_png.rb +2 -2
 - data/test/hexapdf/layout/test_box.rb +11 -1
 - data/test/hexapdf/layout/test_style.rb +23 -0
 - data/test/hexapdf/layout/test_text_fragment.rb +21 -21
 - data/test/hexapdf/test_composer.rb +115 -52
 - data/test/hexapdf/test_dictionary.rb +2 -2
 - data/test/hexapdf/test_document.rb +11 -9
 - data/test/hexapdf/test_object.rb +1 -1
 - data/test/hexapdf/test_parser.rb +13 -7
 - data/test/hexapdf/test_serializer.rb +20 -22
 - data/test/hexapdf/test_stream.rb +7 -9
 - data/test/hexapdf/test_writer.rb +2 -2
 - data/test/hexapdf/type/acro_form/test_appearance_generator.rb +1 -2
 - data/test/hexapdf/type/acro_form/test_choice_field.rb +1 -1
 - data/test/hexapdf/type/signature/common.rb +1 -1
 - data/test/hexapdf/type/test_font_type0.rb +1 -1
 - data/test/hexapdf/type/test_font_type1.rb +7 -7
 - data/test/hexapdf/type/test_image.rb +13 -17
 - metadata +4 -2
 
| 
         @@ -165,26 +165,22 @@ describe HexaPDF::Type::Image do 
     | 
|
| 
       165 
165 
     | 
    
         
             
                end
         
     | 
| 
       166 
166 
     | 
    
         | 
| 
       167 
167 
     | 
    
         
             
                it "writes JPEG images to a file with .jpg extension" do
         
     | 
| 
       168 
     | 
    
         
            -
                   
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
                   
     | 
| 
       174 
     | 
    
         
            -
                    file.unlink
         
     | 
| 
       175 
     | 
    
         
            -
                  end
         
     | 
| 
      
 168 
     | 
    
         
            +
                  file = Tempfile.new(['hexapdf-image-write-test', '.jpg'])
         
     | 
| 
      
 169 
     | 
    
         
            +
                  image = @doc.images.add(@jpg)
         
     | 
| 
      
 170 
     | 
    
         
            +
                  image.write(file.path)
         
     | 
| 
      
 171 
     | 
    
         
            +
                  assert_equal(File.binread(@jpg), File.binread(file.path))
         
     | 
| 
      
 172 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 173 
     | 
    
         
            +
                  file.unlink
         
     | 
| 
       176 
174 
     | 
    
         
             
                end
         
     | 
| 
       177 
175 
     | 
    
         | 
| 
       178 
176 
     | 
    
         
             
                it "writes JPEG2000 images to a file with .jpx extension" do
         
     | 
| 
       179 
     | 
    
         
            -
                   
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
             
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
             
     | 
| 
       185 
     | 
    
         
            -
                   
     | 
| 
       186 
     | 
    
         
            -
                    file.unlink
         
     | 
| 
       187 
     | 
    
         
            -
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
                  file = Tempfile.new(['hexapdf-image-write-test', '.jpx'])
         
     | 
| 
      
 178 
     | 
    
         
            +
                  image = @doc.images.add(@jpg)
         
     | 
| 
      
 179 
     | 
    
         
            +
                  image.set_filter(:JPXDecode) # fake it
         
     | 
| 
      
 180 
     | 
    
         
            +
                  image.write(file.path)
         
     | 
| 
      
 181 
     | 
    
         
            +
                  assert_equal(File.binread(@jpg), File.binread(file.path))
         
     | 
| 
      
 182 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 183 
     | 
    
         
            +
                  file.unlink
         
     | 
| 
       188 
184 
     | 
    
         
             
                end
         
     | 
| 
       189 
185 
     | 
    
         | 
| 
       190 
186 
     | 
    
         
             
                Dir.glob(File.join(TEST_DATA_DIR, 'images', '*.png')).each do |png_file|
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: hexapdf
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.21.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thomas Leitner
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-03-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: cmdparse
         
     | 
| 
         @@ -217,6 +217,7 @@ files: 
     | 
|
| 
       217 
217 
     | 
    
         
             
            - examples/017-frame_text_flow.rb
         
     | 
| 
       218 
218 
     | 
    
         
             
            - examples/018-composer.rb
         
     | 
| 
       219 
219 
     | 
    
         
             
            - examples/019-acro_form.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - examples/020-column_box.rb
         
     | 
| 
       220 
221 
     | 
    
         
             
            - examples/emoji-smile.png
         
     | 
| 
       221 
222 
     | 
    
         
             
            - examples/emoji-wink.png
         
     | 
| 
       222 
223 
     | 
    
         
             
            - examples/machupicchu.jpg
         
     | 
| 
         @@ -333,6 +334,7 @@ files: 
     | 
|
| 
       333 
334 
     | 
    
         
             
            - lib/hexapdf/importer.rb
         
     | 
| 
       334 
335 
     | 
    
         
             
            - lib/hexapdf/layout.rb
         
     | 
| 
       335 
336 
     | 
    
         
             
            - lib/hexapdf/layout/box.rb
         
     | 
| 
      
 337 
     | 
    
         
            +
            - lib/hexapdf/layout/column_box.rb
         
     | 
| 
       336 
338 
     | 
    
         
             
            - lib/hexapdf/layout/frame.rb
         
     | 
| 
       337 
339 
     | 
    
         
             
            - lib/hexapdf/layout/image_box.rb
         
     | 
| 
       338 
340 
     | 
    
         
             
            - lib/hexapdf/layout/inline_box.rb
         
     |