@@ -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,186 +857,139 @@ 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 )
863
- {
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 );
860
+ fz_output * mupdf_new_output_with_buffer (fz_context * ctx , fz_buffer * buf , mupdf_error_t * * errptr ) {
861
+ fz_output * output ;
870
862
fz_try (ctx )
871
863
{
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 )
881
- {
882
- fz_drop_output (ctx , out );
883
- fz_drop_stext_page (ctx , text );
864
+ output = fz_new_output_with_buffer (ctx , buf );
884
865
}
885
866
fz_catch (ctx )
886
867
{
887
868
mupdf_save_error (ctx , errptr );
888
869
}
889
- return buf ;
870
+ return output ;
890
871
}
891
872
892
- fz_buffer * mupdf_stext_page_as_json_from_page (fz_context * ctx , fz_page * page , float scale , mupdf_error_t * * errptr )
873
+ void mupdf_print_stext_page_as_html (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , mupdf_error_t * * errptr )
893
874
{
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
875
fz_try (ctx )
901
876
{
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 )
909
- {
910
- fz_drop_output (ctx , out );
911
- fz_drop_stext_page (ctx , stext_page );
877
+ fz_print_stext_page_as_html (ctx , out , page , id );
912
878
}
913
879
fz_catch (ctx )
914
880
{
915
881
mupdf_save_error (ctx , errptr );
916
882
}
917
- return buf ;
918
883
}
919
884
920
- fz_buffer * mupdf_page_to_xhtml (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
885
+ void mupdf_print_stext_header_as_html (fz_context * ctx , fz_output * out , mupdf_error_t * * errptr )
921
886
{
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
887
fz_try (ctx )
929
888
{
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 );
889
+ fz_print_stext_header_as_html (ctx , out );
937
890
}
938
- fz_always (ctx )
891
+ fz_catch (ctx )
939
892
{
940
- fz_drop_output (ctx , out );
941
- fz_drop_stext_page (ctx , text );
893
+ mupdf_save_error (ctx , errptr );
894
+ }
895
+ }
896
+
897
+ void mupdf_print_stext_trailer_as_html (fz_context * ctx , fz_output * out , mupdf_error_t * * errptr )
898
+ {
899
+ fz_try (ctx )
900
+ {
901
+ fz_print_stext_trailer_as_html (ctx , out );
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_xhtml (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , 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
911
fz_try (ctx )
959
912
{
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 );
913
+ fz_print_stext_page_as_xhtml (ctx , out , page , id );
965
914
}
966
- fz_always (ctx )
915
+ fz_catch (ctx )
967
916
{
968
- fz_drop_output (ctx , out );
969
- fz_drop_stext_page (ctx , text );
917
+ mupdf_save_error (ctx , errptr );
918
+ }
919
+ }
920
+
921
+ void mupdf_print_stext_header_as_xhtml (fz_context * ctx , fz_output * out , mupdf_error_t * * errptr )
922
+ {
923
+ fz_try (ctx )
924
+ {
925
+ fz_print_stext_header_as_xhtml (ctx , out );
970
926
}
971
927
fz_catch (ctx )
972
928
{
973
929
mupdf_save_error (ctx , errptr );
974
930
}
975
- return buf ;
976
931
}
977
932
978
- fz_buffer * mupdf_page_to_text (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
933
+ void mupdf_print_stext_trailer_as_xhtml (fz_context * ctx , fz_output * out , mupdf_error_t * * errptr )
979
934
{
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
935
fz_try (ctx )
987
936
{
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 );
937
+ fz_print_stext_trailer_as_xhtml (ctx , out );
993
938
}
994
- fz_always (ctx )
939
+ fz_catch (ctx )
995
940
{
996
- fz_drop_output (ctx , out );
997
- fz_drop_stext_page (ctx , text );
941
+ mupdf_save_error (ctx , errptr );
942
+ }
943
+ }
944
+
945
+ void mupdf_print_stext_page_as_xml (fz_context * ctx , fz_output * out , fz_stext_page * page , int id , mupdf_error_t * * errptr )
946
+ {
947
+ fz_try (ctx )
948
+ {
949
+ fz_print_stext_page_as_xml (ctx , out , page , id );
998
950
}
999
951
fz_catch (ctx )
1000
952
{
1001
953
mupdf_save_error (ctx , errptr );
1002
954
}
1003
- return buf ;
1004
955
}
1005
956
1006
- fz_link * mupdf_load_links (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
957
+ void mupdf_print_stext_page_as_text (fz_context * ctx , fz_output * out , fz_stext_page * page , mupdf_error_t * * errptr )
1007
958
{
1008
- fz_link * link = NULL ;
1009
959
fz_try (ctx )
1010
960
{
1011
- link = fz_load_links (ctx , page );
961
+ fz_print_stext_page_as_text (ctx , out , page );
1012
962
}
1013
963
fz_catch (ctx )
1014
964
{
1015
965
mupdf_save_error (ctx , errptr );
1016
966
}
1017
- return link ;
1018
967
}
1019
968
1020
- fz_buffer * mupdf_stext_page_to_text (fz_context * ctx , fz_stext_page * page , mupdf_error_t * * errptr )
969
+ void mupdf_print_stext_page_as_json (fz_context * ctx , fz_output * out , fz_stext_page * page , float scale , mupdf_error_t * * errptr )
1021
970
{
1022
- fz_buffer * buf = NULL ;
1023
- fz_output * out = NULL ;
1024
- fz_var (buf );
1025
- fz_var (out );
1026
971
fz_try (ctx )
1027
972
{
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 );
973
+ fz_print_stext_page_as_json (ctx , out , page , scale );
1032
974
}
1033
- fz_always (ctx )
975
+ fz_catch (ctx )
1034
976
{
1035
- fz_drop_output (ctx , out );
977
+ mupdf_save_error (ctx , errptr );
978
+ }
979
+ }
980
+
981
+ fz_link * mupdf_load_links (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
982
+ {
983
+ fz_link * link = NULL ;
984
+ fz_try (ctx )
985
+ {
986
+ link = fz_load_links (ctx , page );
1036
987
}
1037
988
fz_catch (ctx )
1038
989
{
1039
990
mupdf_save_error (ctx , errptr );
1040
991
}
1041
- return buf ;
992
+ return link ;
1042
993
}
1043
994
1044
995
fz_separations * mupdf_page_separations (fz_context * ctx , fz_page * page , mupdf_error_t * * errptr )
0 commit comments