@@ -774,14 +774,12 @@ fz_buffer *mupdf_page_to_svg(fz_context *ctx, fz_page *page, fz_matrix ctm, fz_c
774
774
return buf ;
775
775
}
776
776
777
- fz_stext_page * mupdf_page_to_text_page (fz_context * ctx , fz_page * page , int flags , mupdf_error_t * * errptr )
777
+ fz_stext_page * mupdf_new_stext_page_from_page (fz_context * ctx , fz_page * page , const fz_stext_options * options , mupdf_error_t * * errptr )
778
778
{
779
779
fz_stext_page * text_page = NULL ;
780
- fz_stext_options opts = {0 };
781
- opts .flags = flags ;
782
780
fz_try (ctx )
783
781
{
784
- text_page = fz_new_stext_page_from_page (ctx , page , & opts );
782
+ text_page = fz_new_stext_page_from_page (ctx , page , options );
785
783
}
786
784
fz_catch (ctx )
787
785
{
@@ -859,148 +857,77 @@ void mupdf_run_page_widgets(fz_context *ctx, fz_page *page, fz_device *device, f
859
857
}
860
858
}
861
859
862
- fz_buffer * mupdf_page_to_html (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
860
+ fz_output * mupdf_new_output_with_buffer (fz_context * ctx , fz_buffer * buf , mupdf_error_t * * errptr ) {
861
+ fz_output * output ;
862
+ fz_try (ctx )
863
+ {
864
+ output = fz_new_output_with_buffer (ctx , buf );
865
+ }
866
+ fz_catch (ctx )
867
+ {
868
+ mupdf_save_error (ctx , errptr );
869
+ }
870
+ return output ;
871
+ }
872
+
873
+ void mupdf_print_stext_page_as_html (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , mupdf_error_t * * errptr )
863
874
{
864
- fz_buffer * buf = NULL ;
865
- fz_output * out = NULL ;
866
- fz_stext_page * text = NULL ;
867
- fz_var (text );
868
- fz_var (buf );
869
- fz_var (out );
870
- fz_try (ctx )
871
- {
872
- text = fz_new_stext_page_from_page (ctx , page , NULL );
873
- buf = fz_new_buffer (ctx , 8192 );
874
- out = fz_new_output_with_buffer (ctx , buf );
875
- fz_print_stext_header_as_html (ctx , out );
876
- fz_print_stext_page_as_html (ctx , out , text , page -> number );
877
- fz_print_stext_trailer_as_html (ctx , out );
878
- fz_close_output (ctx , out );
879
- }
880
- fz_always (ctx )
875
+ fz_try (ctx )
881
876
{
882
- fz_drop_output (ctx , out );
883
- fz_drop_stext_page (ctx , text );
877
+ fz_print_stext_page_as_html (ctx , out , page , id );
884
878
}
885
879
fz_catch (ctx )
886
880
{
887
881
mupdf_save_error (ctx , errptr );
888
882
}
889
- return buf ;
890
883
}
891
884
892
- fz_buffer * mupdf_stext_page_as_json_from_page (fz_context * ctx , fz_page * page , float scale , mupdf_error_t * * errptr )
885
+ void mupdf_print_stext_page_as_xhtml (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , mupdf_error_t * * errptr )
893
886
{
894
- fz_buffer * buf = NULL ;
895
- fz_output * out = NULL ;
896
- fz_stext_page * stext_page = NULL ;
897
- fz_var (stext_page );
898
- fz_var (buf );
899
- fz_var (out );
900
- fz_try (ctx )
901
- {
902
- stext_page = fz_new_stext_page_from_page (ctx , page , NULL );
903
- buf = fz_new_buffer (ctx , 8192 );
904
- out = fz_new_output_with_buffer (ctx , buf );
905
- fz_print_stext_page_as_json (ctx , out , stext_page , scale );
906
- fz_close_output (ctx , out );
907
- }
908
- fz_always (ctx )
887
+ fz_try (ctx )
909
888
{
910
- fz_drop_output (ctx , out );
911
- fz_drop_stext_page (ctx , stext_page );
889
+ fz_print_stext_page_as_xhtml (ctx , out , page , id );
912
890
}
913
891
fz_catch (ctx )
914
892
{
915
893
mupdf_save_error (ctx , errptr );
916
894
}
917
- return buf ;
918
895
}
919
896
920
- fz_buffer * mupdf_page_to_xhtml (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
897
+ void mupdf_print_stext_page_as_xml (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , mupdf_error_t * * errptr )
921
898
{
922
- fz_buffer * buf = NULL ;
923
- fz_output * out = NULL ;
924
- fz_stext_page * text = NULL ;
925
- fz_var (text );
926
- fz_var (buf );
927
- fz_var (out );
928
- fz_try (ctx )
929
- {
930
- text = fz_new_stext_page_from_page (ctx , page , NULL );
931
- buf = fz_new_buffer (ctx , 8192 );
932
- out = fz_new_output_with_buffer (ctx , buf );
933
- fz_print_stext_header_as_xhtml (ctx , out );
934
- fz_print_stext_page_as_xhtml (ctx , out , text , page -> number );
935
- fz_print_stext_trailer_as_xhtml (ctx , out );
936
- fz_close_output (ctx , out );
937
- }
938
- fz_always (ctx )
899
+ fz_try (ctx )
939
900
{
940
- fz_drop_output (ctx , out );
941
- fz_drop_stext_page (ctx , text );
901
+ fz_print_stext_page_as_xml (ctx , out , page , id );
942
902
}
943
903
fz_catch (ctx )
944
904
{
945
905
mupdf_save_error (ctx , errptr );
946
906
}
947
- return buf ;
948
907
}
949
908
950
- fz_buffer * mupdf_page_to_xml (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
909
+ void mupdf_print_stext_page_as_text (fz_context * ctx , fz_output * out , fz_stext_page * page , mupdf_error_t * * errptr )
951
910
{
952
- fz_buffer * buf = NULL ;
953
- fz_output * out = NULL ;
954
- fz_stext_page * text = NULL ;
955
- fz_var (text );
956
- fz_var (buf );
957
- fz_var (out );
958
- fz_try (ctx )
959
- {
960
- text = fz_new_stext_page_from_page (ctx , page , NULL );
961
- buf = fz_new_buffer (ctx , 8192 );
962
- out = fz_new_output_with_buffer (ctx , buf );
963
- fz_print_stext_page_as_xml (ctx , out , text , page -> number );
964
- fz_close_output (ctx , out );
965
- }
966
- fz_always (ctx )
911
+ fz_try (ctx )
967
912
{
968
- fz_drop_output (ctx , out );
969
- fz_drop_stext_page (ctx , text );
913
+ fz_print_stext_page_as_text (ctx , out , page );
970
914
}
971
915
fz_catch (ctx )
972
916
{
973
917
mupdf_save_error (ctx , errptr );
974
918
}
975
- return buf ;
976
919
}
977
920
978
- fz_buffer * mupdf_page_to_text (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
921
+ void mupdf_print_stext_page_as_json (fz_context * ctx , fz_output * out , fz_stext_page * page , float scale , mupdf_error_t * * errptr )
979
922
{
980
- fz_buffer * buf = NULL ;
981
- fz_output * out = NULL ;
982
- fz_stext_page * text = NULL ;
983
- fz_var (text );
984
- fz_var (buf );
985
- fz_var (out );
986
923
fz_try (ctx )
987
924
{
988
- text = fz_new_stext_page_from_page (ctx , page , NULL );
989
- buf = fz_new_buffer (ctx , 8192 );
990
- out = fz_new_output_with_buffer (ctx , buf );
991
- fz_print_stext_page_as_text (ctx , out , text );
992
- fz_close_output (ctx , out );
993
- }
994
- fz_always (ctx )
995
- {
996
- fz_drop_output (ctx , out );
997
- fz_drop_stext_page (ctx , text );
925
+ fz_print_stext_page_as_json (ctx , out , page , scale );
998
926
}
999
927
fz_catch (ctx )
1000
928
{
1001
929
mupdf_save_error (ctx , errptr );
1002
930
}
1003
- return buf ;
1004
931
}
1005
932
1006
933
fz_link * mupdf_load_links (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
@@ -1017,30 +944,6 @@ fz_link *mupdf_load_links(fz_context *ctx, fz_page *page, mupdf_error_t **errptr
1017
944
return link ;
1018
945
}
1019
946
1020
- fz_buffer * mupdf_stext_page_to_text (fz_context * ctx , fz_stext_page * page , mupdf_error_t * * errptr )
1021
- {
1022
- fz_buffer * buf = NULL ;
1023
- fz_output * out = NULL ;
1024
- fz_var (buf );
1025
- fz_var (out );
1026
- fz_try (ctx )
1027
- {
1028
- buf = fz_new_buffer (ctx , 8192 );
1029
- out = fz_new_output_with_buffer (ctx , buf );
1030
- fz_print_stext_page_as_text (ctx , out , page );
1031
- fz_close_output (ctx , out );
1032
- }
1033
- fz_always (ctx )
1034
- {
1035
- fz_drop_output (ctx , out );
1036
- }
1037
- fz_catch (ctx )
1038
- {
1039
- mupdf_save_error (ctx , errptr );
1040
- }
1041
- return buf ;
1042
- }
1043
-
1044
947
fz_separations * mupdf_page_separations (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
1045
948
{
1046
949
fz_separations * seps = NULL ;
0 commit comments