Tại sao các tệp PDF được tạo từ MS Word lại lớn như vậy?


70

Tôi đã tạo một tài liệu MS Word đơn giản chỉ chứa câu này:

Đây là một tài liệu nhỏ.

Không có gì khác. Sau đó, tôi đã lưu tài liệu này dưới dạng DOCX và PDF. Dưới đây là kích thước tập tin:

DOCX: 12 kB
PDF: 89 kB

Sự khác biệt này là rất lớn , về mặt kỹ thuật và nó thực sự bắt đầu làm phiền tôi khi hầu hết các tài liệu văn bản có hàng chục kB trong DOCX bắt đầu tạo các tệp PDF có kích thước hàng trăm kB . Điều gì không hiệu quả về định dạng PDF? Hay chỉ là Word sử dụng một số thuật toán đầu ra khủng khiếp?

BTW, cài đặt đầu ra PDF được đặt để tạo tệp nhỏ nhất có thể:

Tùy chọn đầu ra PDF


28
Tôi đoán là PDF nhúng phông chữ, điều này là cần thiết nếu một tài liệu phải thực sự di động.
AFH

2
Có, tập hợp phông chữ được nhúng. Đó có thể là nó. Tôi đã cố gắng lặp lại cùng một câu vài trăm lần và kích thước tệp PDF chỉ tăng thêm 4 kB, điều này vừa phải. (DOCX vẫn ở mức 12kB, điều này không có gì đáng ngạc nhiên vì đó là định dạng được nén và văn bản lặp đi lặp lại sẽ khó có bất kỳ byte mới nào.)
Borek Bernard

1
@AFH Nó không nhúng Arial. i.stack.imgur.com/aUZgt.png
MonkeyZeus

1
Suy nghĩ về nó từ quan điểm phức tạp Kolmogorov, Microsoft Word lớn hơn trình xem PDF trung bình của bạn, nhiều hơn vài trăm kB.
hobbs

8
Tôi nghĩ rằng câu hỏi thực sự là tại sao định dạng xử lý văn bản của bạn lớn hơn nhiều so với LaTeX tương đương ... :-p
Toby Speight

Câu trả lời:


104

Nếu bạn mở tệp PDF trong notepad ++, bạn sẽ tìm thấy:

9 0 obj
<</Filter/FlateDecode/Length 79100/Length1 171804>>
stream
xœì}    XTGºvÕ9½/t7Ðl
..... many more bytes  ...   ëH|  
endstream
endobj
10 0 obj

và đối tượng đó được tham chiếu ở đây ở cuối trong lệnh / FontFile2:

6 0 obj
<</Type/FontDescriptor/FontName/ABCDEE+Calibri/Flags 32/ItalicAngle 0/Ascent 750/Descent -250/CapHeight 750/AvgWidth 521/MaxWidth 1743/FontWeight 400/XHeight 250/StemV 52/FontBBox[ -503 -250 1240 750] /FontFile2 9 0 R>>
endobj

Các phông chữ được sử dụng bởi tài liệu Word được nhúng vào PDF để pdf được khép kín.

Tôi đã sử dụng slide này để giải mã các hướng dẫn PDF.

Nếu bạn muốn ngăn phông chữ được nhúng trong tệp PDF, hãy đảm bảo tài liệu Word của bạn sử dụng một trong 14 kiểu chữ tiêu chuẩn có sẵn trong trình xem PDF, (nguồn Wikipedia )

  • Times New Roman> Times (v3) (in nghiêng thường, in nghiêng, in đậm và in đậm)
  • Chuyển phát nhanh Mới> Chuyển phát nhanh (thường xuyên, xiên, đậm và xiên)
  • Arial> Helvetica (v3) (thường xuyên, xiên, đậm và đậm)
  • Biểu tượng> Biểu tượng
  • Wingdings> Zapf Đinh lăng


2
Sidenote: Bộ bài trình chiếu được liên kết (bản trình bày Powershell) đáng để đọc. Rất chi tiết. Đừng bỏ lỡ các bình luận nơi anh ấy giải thích cấu trúc của PDF
nixda

3

Điều này đã xảy ra với tôi nhiều lần trong Microsoft Word khi cố gắng xuất bản thảo đơn giản sang PDF. Tài liệu Word 5 trang 8, có kích thước ~ 50 KB, sẽ kết thúc dưới dạng tệp PDF hơn 10 MB, quá lớn để gửi email cho ai đó một cách hợp lý.

Câu trả lời của Rene là đi đúng hướng, vấn đề là phông chữ được nhúng vào tài liệu, nhưng chỉ cần sử dụng một trong những kiểu chữ chuẩn sẽ không nhất thiết phải giải quyết vấn đề.

Tất cả các tài liệu của tôi đều ở Times New Roman, không sử dụng gì lạ hơn in đậm và in nghiêng. Hay tôi nghĩ vậy. Nó chỉ ra rằng tôi phải tự động kerning cho phép trong mẫu mặc định của tôi (đối với lý do rõ ràng ). Khi xuất thành PDF, Word thực sự đã nhúng từng chữ cái đó như một đối tượng phông chữ riêng biệt vào tài liệu, làm cho nó vượt quá mọi niềm tin.

Cách khắc phục rất đơn giản, bạn chỉ cần nhớ thực hiện mỗi lần:

  1. Chọn tất cả các văn bản trong tài liệu.
  2. Định dạng → Phông chữ → Nâng cao
  3. Bỏ chọn "Kerning cho phông chữ"

Thật thú vị, bạn có thể để lại chữ ghép, các lựa chọn thay thế theo ngữ cảnh và các tính năng đánh máy nâng cao khác được bật; chúng không có tác dụng rõ ràng đối với kích thước của tệp PDF kết quả.

Tái xuất tài liệu dưới dạng PDF và giảm xuống còn một trăm KB. Thật không may, k sâu là mệnh giá phụ, vì vậy tôi không khuyên bạn nên in theo cách này, nhưng nó hoạt động tốt để gửi email một tài liệu.


-3

Để đưa ra một câu trả lời ít kỹ thuật hơn có thể giúp ích là các tệp PDF sử dụng các vectơ (nghĩa là: phương trình toán học) để mô tả mọi thứ bạn nhìn thấy. Tất cả các đường cong và đường được xác định bởi các phương trình toán học, và do đó, nhất thiết sẽ có rất nhiều thông tin để giữ, đặc biệt là khi bạn có hình ảnh trong tài liệu của mình.

Lợi ích của việc này là về mặt lý thuyết bạn có thể phóng to gần vô hạn mà không mất bất kỳ độ phân giải hoặc chi tiết nào, bởi vì các đường và đường cong không có chiều rộng, vì vậy chúng có thể thu phóng theo tỷ lệ thu phóng của bạn.

Giống như cách thay đổi phông chữ gần đây của Google đã giảm kích thước logo từ ~ 14KB xuống ~ 300B, các phông chữ đơn giản hơn có thể sẽ giúp giảm kích thước tệp của bạn.


4
Sự tương tự đó không hoạt động. Ở tất cả. Thay đổi logo của Google không chỉ là phông chữ, mà còn từ độ dốc sang độ phẳng tạo nên sự khác biệt về kích thước. Hơn nữa, xuất tài liệu sang bitmap lớn sẽ lớn hơn nhiều so với phông chữ + văn bản. Các phương trình toán học, như bạn nói sai, chỉ là các cặp tọa độ nguyên, trong đó có thể có vài chục cho mỗi glyph. Và vì nó là một phông chữ nên nó không cần lặp lại cho mỗi chữ cái.
Joey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.