Looking for better approach to recognize text and symbols from table in image and export to CSV

I am working on OCR as part of my curiocity and interest where I am trying to extract text, numeric values, and symbols from an image of tabular data and then that extracted data I want to export into CSV file. Sample image looks like this

Images are generated from pdf files.

I tried using Tesseract OCR with Java and also with Python but after conversion of image to text, the extracted text missing the symbols.

Below is my sample code in Java

package com.sk.ocr;

import org.bytedeco.javacpp.*;
import org.bytedeco.leptonica.*;
import org.bytedeco.tesseract.*;

import static org.bytedeco.leptonica.global.lept.*;
import static org.bytedeco.tesseract.global.tesseract.*;

public class PresetsOCR {
    public static void main(String[] args) {
        BytePointer outText;

        TessBaseAPI api = new TessBaseAPI();

        if (api.Init("C:/Program Files/Tesseract-OCR/tessdata", "eng") != 0) {
            System.err.println("Could not initialize tesseract.");

        PIX image = pixRead(args.length > 0 ? args[0] : "C:/tmp/images/sample-2.jpeg");

        outText = api.GetUTF8Text();
        System.out.println("OCR output:\n" + outText.getString());


Expected Output:

OCR output:
Location Requirement Type   Mult    Value   Upper Tol   Lower Tol
S1-D6      R4 ± R5      R           4       +5.0        -5.0
S1-D7     Ꚛ ø0.5 A B C  Ꚛ           0       +5.0        -0.0
S1-D7      ֍ ø0.1 G     ֍           0       +1.0        -0.0

Actual Output:

OCR output:
ea eee) ine | SE eave ees
S16 Res 05 R [4 [ +05 [ 05
|st-p7_ | a0 +05 | 00
Teil oe ser fa]

Above program generates approximately correct output when input image of English text, but fails when the image holds tabular data or special symbols.

Any ideas or pointers for further proceeding is appreciated!