President Barack Obama on Wednesday said he still hopes to complete an agreement with Speaker John A. Boehner to avert the fiscal cliff before Christmas and is puzzled that Republicans haven’t accepted his offer to drop most of the scheduled tax increases and to cut spending.

“The fact that they haven’t taken it is puzzling,” the president said. “Take the deal,” he added.

“I have come at least halfway at meeting the Republican concerns,” Obama said in an impromptu press conference at the White House during a session called to outline administration initiatives on gun violence.

With the deadline for an array of tax increases now less than two weeks away, Obama resisted the idea that he should compromise much further on the income level for a tax increase, although he didn’t close the door on the idea entirely.

He said Boehner’s plan “keeps tax cuts for folks making $500,000 or $700,000 or $800,000 or $900,000 a year and gives more tax breaks to millionaires and billionaires.”

Obama’s last offer would halt any tax increases for households with income up to $400,000, up from the $250,000 level he first proposed. Asked whether he was willing to compromise between the income levels, he told reporters, “I’m not going to get into specific negotiations here.”

His comments came as House Republicans are preparing for a vote Thursday on what Boehner calls “Plan B,” a scaled-down alternative to extend many of the tax cuts for all but those earning more than $1 million in annual income.

Obama suggested to reporters that Republicans are having a hard time agreeing to a deal because of their hostility toward him.

“They keep on finding ways to say no instead of finding ways to say yes. . . . Take me out of it and think about their voters and think about what’s best for the country,” he said.

Obama said he’s already compromised. “This is not a situation where I’m trying to rub their face in anything,” Obama said. “Look at the facts. Look at where we started, look at where they started. My proposal is right in the middle.”

Obama complained that Boehner is instead moving ahead with his plan, which Obama said would let taxes go up on millions of middle-class families — while providing $50,000 in tax relief to people making more than $1 million.

He also mocked the $1 million threshold as something that the American people do not support, nor would he.

“If you’re making $900,000, he thinks you can’t afford to pay a little more in taxes,” Obama said of Boehner’s offer.

And Obama said the offer made no logical sense because it would not include more than $1 trillion in spending cuts that the president is offering.

“I remain eager to get something done. I’d like to get it done before Christmas. . . . We’ve been wasting a lot of time,” he said.

Obama also reiterated his warning that he will not again negotiate over the nation’s debt ceiling. He said it is not acceptable for the nation to lurch from crisis to crisis and threaten every six or nine months not to pay its bills.